23种设计模式-外观模式

基本介绍:
(1)外观模式:也叫“过程模式”,外观模式为子系统中的一组接口提供一个一致性的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用
(2)外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节。

在这里插入图片描述
角色说明:
1.外观(Facade)角色:为调用端提供统一的调用接口,外观类知道哪些子系统负责处理请求,从而将调用端的请求代理给适当子系统的对象。
2.子系统(Sub System)角色:指模块或者子系统,处理Facade对象指派的任务,他是功能的提供者。
3.调用者(Client)角色:通过一个外观角色访问各个子系统的功能。

public class FacadePattern {
    
    
    public static void main(String[] args) {
    
    
        Facade f = new Facade();
        f.method();
    }
}
//外观角色
class Facade {
    
    
    private SubSystem01 obj1 = new SubSystem01();
    private SubSystem02 obj2 = new SubSystem02();
    private SubSystem03 obj3 = new SubSystem03();
    public void method() {
    
    
        obj1.method1();
        obj2.method2();
        obj3.method3();
    }
}
//子系统角色
class SubSystem01 {
    
    
    public void method1() {
    
    
        System.out.println("子系统01的method1()被调用!");
    }
}
//子系统角色
class SubSystem02 {
    
    
    public void method2() {
    
    
        System.out.println("子系统02的method2()被调用!");
    }
}
//子系统角色
class SubSystem03 {
    
    
    public void method3() {
    
    
        System.out.println("子系统03的method3()被调用!");
    }
}

外观模式是一个很简单的模式,感觉我们都可以不在意这个模式,写代码的时候就会自动考虑到,上面这个案例如果写的复杂一些就是子系统之间还有调用,我们也无需关心,这个模式满足迪米特法则的典范。

框架中使用:Mybatis的Configuration.newMetaObject()中使用过程如下图
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44468025/article/details/117184162#comments_16616013
今日推荐