zoukankan      html  css  js  c++  java
  • 设计模式-外观模式

    外观模式

    定义:他为子系统中的一组接口提供一个统一的高层接口,这使得子系统更加容易使用。

    外观模式是"迪米特法则"的典型应用。只要是高层模块需要调度多个子系统时,我们都自觉地编写一个新的类封装,提供出精简的接口。

    Facade类封装了子系统,可以提供出多个接口,简化客户角色的调用。

    代码示例:

    package com.facade;
    
    public interface Facade {
        
        /*  下面随便组装几个功能  */
        
        void function12();
        
        void function23();
        
        void function123();
        
    }
    
    package com.facade;
    
    public class FacadeImpl implements Facade{
    
        private Sub1 sub1;
        
        private Sub2 sub2;
        
        private Sub3 sub3;
        
        public FacadeImpl() {
            super();
            this.sub1 = new Sub1Impl();
            this.sub2 = new Sub2Impl();
            this.sub3 = new Sub3Impl();
        }
    
        public FacadeImpl(Sub1 sub1, Sub2 sub2, Sub3 sub3) {
            super();
            this.sub1 = sub1;
            this.sub2 = sub2;
            this.sub3 = sub3;
        }
    
        public void function12() {
            sub1.function1();
            sub2.function2();
        }
    
        public void function23() {
            sub2.function2();
            sub3.function3();
        }
    
        public void function123() {
            sub1.function1();
            sub2.function2();
            sub3.function3();
        }
    
    }
    

    Sub1,Sub2,Sub3本来3个接口各自为战,现在有了FacadeImpl类来统一指挥,外观接口则是提供给客户端使用的,比如客户如果需要调sub1,sub2,就直接调FacadeImpl类的function12()方法,而让客户端只依赖于外观接口。

    返回目录

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    nexus 手动更改 私服包
    maven 构建时 错误: 程序包netscape.javascript不存在
    RocketMQ
    NSQ
    beego 实现API自动化文档
    动态追踪技术漫谈
    go vendor管理Golang项目依赖
    consul介绍
    golang rpc介绍
    golang 使用os/exec配合context实现的超时机制
  • 原文地址:https://www.cnblogs.com/javammc/p/14942598.html
Copyright © 2011-2022 走看看