设计模式 : 外观模式

Love The Way You Lie 2022-05-28 08:18 395阅读 0赞

外观模式(Facade) : 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一系统更加容易使用.

70

四个子系统的类

  1. class SubSystemOne{
  2. public void MethodOne(){
  3. System.out.println("子系统方法一");
  4. }
  5. }
  6. class SubSystemTwo{
  7. public void MethodTwo(){
  8. System.out.println("子系统方法二");
  9. }
  10. }
  11. class SubSystemThree{
  12. public void MethodThree(){
  13. System.out.println("子系统方法三");
  14. }
  15. }
  16. class SubSystemFour{
  17. public void MethodFour(){
  18. System.out.println("子系统方法四");
  19. }
  20. }

外观类

  1. class Facade{
  2. //外观类,它需要了解所有的子系统的方法或者属性,进行组合,以备外界调用
  3. SubSystemOne one;
  4. SubSystemTwo two;
  5. SubSystemThree three;
  6. SubSystemFour four;
  7. public Facade(){
  8. one = new SubSystemOne();
  9. two = new SubSystemTwo();
  10. three = new SubSystemThree();
  11. four = new SubSystemFour();
  12. }
  13. public void MethodA(){
  14. System.out.println("\n 方法组A() ---");
  15. one.MethodOne();
  16. two.MethodTwo();
  17. four.MethodFour();
  18. }
  19. public void MethodB(){
  20. System.out.println("\n 方法组A() ---");
  21. two.MethodTwo();
  22. three.MethodThree();
  23. }
  24. }

客户端调用

  1. static void Main(String[] args){
  2. Facade facade = new Facade();
  3. //由于Facade的作用,客户端可以根本不知三个子系统的存在
  4. facade.MethodA();
  5. facade.MethodB();
  6. }

何时使用外观模式

首先,在设计初期阶段,应该要有意识的将不同的两个层分离.

  1. 在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观Facade可以提供一个简单的接口,减少它们之间的依赖.
  2. 第三,在维护一个遗留的大型时,可能这个系统已经非常难以维护扩展了,但因为它包含非常重要的功能,新的需求开发必须要依赖于它,这时用外观模式是非常适合的.
  3. 你可以为新系统开发一个外观Facade类,来提供设计粗糙和高度复杂的遗留代码的比较清晰简单的接口,让新系统与Facade对象交互,Facade与遗留代码交互所有复杂的工作.

发表评论

表情:
评论列表 (有 0 条评论,395人围观)

还没有评论,来说两句吧...

相关阅读

    相关 设计模式 - 外观模式

    设计模式 - 外观模式 场景 小张搬家了,新的房间都是智能化,但是每个设备都是独立的,小张每次回家之前需要打开app分别打开每个设备,例如小张回家后的基本操作是开门

    相关 设计模式 - 外观模式

    定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这个子系统更加容易使用。 通过将子系统中一系列的接口进行组合形成一个更高层的接口,这样客户

    相关 设计模式——外观模式

    本文主要是讲述结构型模式中一个比较常用的模式-外观模式,这个模式呢,有个最大的特点将细粒度的对象包装成粗粒度的对象,应用程序通过 访问这个外观对象,来完成细粒度对象的调用,外