• 外观模式


    优点:

    1.他对客户端屏蔽了子系统的组件,减少了客户端所需处理的对象数组,并使子系统使用更加容易,通过引入外观类客户端代码将变得很简答,与之关联的对象也很少  

    2.他实现了子系统和客户端之间的松耦合关系,这使得子系统的内部变化不会影响到调用他的客户端,只需调整它的外观类即可    

    3.一个子系统的修改对其他子系统没有任何影响,而且子系统内部变化不会影响其他外观对象

    缺点:

    1.不能很好的限制客户端直接使用子系统,如果对客户端子系统作太多的限制则减少了可变性和灵活性    

    2.如果设计不当,增加新的子系统可能需要修改外观类的源代码,这就违背了开闭原则     

    使用环境:

    1.当要为访问一些列复杂的子系统提供一个简单入口是,可以使用外观模式  

     2.客户端程序与子系统之间存在很大的依赖性,引入外观类可将子系统子系统与客户端解耦,从而提高了子系统的独立性和可移植性    

    3.在层次化结构中,可以使用外观模式定义系统中每一层的入口,层与之间不直接产生联系,而通过外观类建立联系,降低层之间的耦合度

    1 package com.shanghai.wanson.designpattern;
    2 
    3 public class subSystem01 {
    4     public void methon1(){
    5         System.out.println("子系统01方法被调用");
    6     }
    7 }
    1 package com.shanghai.wanson.designpattern;
    2 
    3 public class subSystem02 {
    4     public void methon2(){
    5         System.out.println("子系统02方法被调用");
    6     }
    7 }
    1 package com.shanghai.wanson.designpattern;
    2 
    3 public class subSystem03 {
    4     public void methon3(){
    5         System.out.println("子系统03方法被调用");
    6     }
    7 }
     1 package com.shanghai.wanson.designpattern;
     2 
     3 public class Facade {
     4     private subSystem01 system01=new subSystem01();
     5     private subSystem02 system02=new subSystem02();
     6     private  subSystem03 system03=new subSystem03();
     7 
     8     public void method(){
     9         system01.methon1();
    10         system02.methon2();
    11         system03.methon3();
    12     }
    13 }
    1 package com.shanghai.wanson.designpattern;
    2 
    3 public class Driver {
    4     public static void main(String[] args) {
    5         Facade facade =new Facade();
    6         facade.method();
    7     }
    8 }
  • 相关阅读:
    【项目】项目41
    【项目】项目40
    【项目】项目39
    【项目】项目38
    【项目】项目37
    15-155. Min Stack
    14-160. Intersection of Two Linked Lists
    13-169. Majority Element
    12-206. Reverse Linked List
    11-215. Kth Largest Element in an Array
  • 原文地址:https://www.cnblogs.com/wq-9/p/10256988.html
Copyright © 2020-2023  润新知