设计模式十一--外观模式

定义

要求一个子系统的外部预期内部的通信必须通过一个统一的对象进行。外观模式提供高层次的接口,使得子系统更易使用。

角色

1:外观角色(Facade)
客户端可以调用该角色的方法,该角色知晓相关子系统的功能和责任,正常情况下,本角色将所有从客户端发来的请求为派到相应的子系统,该角色没有实际的业务逻辑,只是一个委托类。

public class ClassA{
  public void methodA(){}
}
public class ClassB(){
  public void methodB(){}
}
public class ClassC(){
  public void methodC(){}
}

2:子系统角色(SubSystem)可以同时有一个或者多个子系统,每一个子系统都不是一个单独的类,而是一个类的集合,子系统不知道外观角色的存在,对于子系统而言,外观角色仅仅是另外一个客户端而已。

public class Facade{
  private ClassA a = new ClassA();
  private ClassB b = new ClassB();
  private ClassC c = new ClassC();
  public void methodA(){
    a.methodA();
  }
  public void methodB (){
    b.methodB();
  }
  public void methodC(){
    c.methodC();
  }
}

优点

1:减少系统的相互依赖型,所有的依赖都市对Facade的依赖,与子系统无关
2:提高灵活性,不管子系统内部如何变化,只要不影响Facade对象,任何活动都是自由的
3:提高安全性,Facade中未提供的方法,外界就无法访问,提高系统安全性。

参考资料:设计模式(java)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容