java设计模式10(外观模式)

外观模式通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,使子系统与客户端的耦合度降低,且客户端调用非常方便。

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

外观模式的结构与实现:
1.Facade(外观角色):在客户端可以调用它的方法,在外观角色中可以知道相关的(一个或多个)子系统的功能和责任;在正常情况下,它将所有从客户端发来的请求委派到相应的子系统,传递给相应的子系统对象处理。

public class Facade {

    private SubSystem subSystem=new SubSystem();
    
    private SubSystemA subSystemA=new SubSystemA();
    
    private SubSystemB subSystemB=new SubSystemB();
    
    public void myTest() {
        //调用子系统方法
        subSystem.test();
        subSystemA.testA();
        subSystemB.testB();
    }
}

2.SubSystem(子系统角色):在软件系统中可以有一个或者多个子系统角色,每一个子系统可以是一个单独类或者一个类的集合;每一个子系统都可以被客户端调用,或者被外观角色调用,它处理由外观类传递来的请求;子系统并不知道外观的存在,对于子系统而言,外观角色仅仅是另一个客户端。

public class SubSystem {

    public void test() {
        System.out.println("实现子系统业务!");
    }
}

public class SubSystemA {

    public void testA() {
        System.out.println("实现子系统A业务!");
    }
}
public class SubSystemB {

    public void testB() {
        System.out.println("实现子系统B业务!");
    }
}

3.Test:

public class Test {

    public static void main(String[] args) {
        Facade facade=new Facade();
        facade.myTest();
    }
}

4.运行内容:

实现子系统业务!
实现子系统A业务!
实现子系统B业务!
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录 本文的结构如下: 什么是外观模式 模式的结构 代码示例 优点和缺点 适用环境 模式应用 模式扩展 补充 一、...
    w1992wishes阅读 650评论 0 1
  • 【学习难度:★☆☆☆☆,使用频率:★★★★★】直接出处:外观模式梳理和学习:https://github.com/...
    BruceOuyang阅读 684评论 0 0
  • 一、模式定义 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子...
    QuantRuu阅读 751评论 0 50
  • 睡前听到了一个渣男前任的故事,替朋友打抱不平,这些白目真是瞎了眼了没了脑了!晚安
    Gigi熊阅读 286评论 2 5
  • 不再很愿意掏心窝子的分享开怀与不开怀的心事,牵一发而动全身的那层,疲惫。 总也晚睡,深夜发烫的灵魂,...
    靠谱婶儿阅读 232评论 0 0