Java设计模式(九):外观模式

外观模式(facade pattern)

外观模式(facade pattern):属于对象结构模式。又称为门面模式,为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。


外观模式UML图

Java设计模式(九):外观模式

Java


外观模式涉及的角色

外观(Facade)角色:客户端直接调用这个角色的方法,该角色知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。子系统(SubSystem)角色:子系统角色集合实现子系统的功能,处理 Facade 对象指派的任务。注意子类中没有 Facade 的任何信息,即没有对 Facade 对象的引用。


示例代码

外观类 Facade

Java设计模式(九):外观模式

Java

子系统(SubSystem)集合中的类A SubModuleA

Java设计模式(九):外观模式

Java

子系统(SubSystem)集合中的类B SubModuleB

Java设计模式(九):外观模式

Java

子系统(SubSystem)集合中的类C SubModuleC

Java设计模式(九):外观模式

Java

客户端(Client)测试类 TestFacadePattern

Java设计模式(九):外观模式

Java


外观模式优点

  1. 松散耦合:外观模式松散了客户端与子系统的耦合关系,让子系统内部的模块能更容易扩展和维护。

  2. 简单易用:外观模式让子系统更加易用,客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块进行交互,只需要跟门面类交互就可以了。

  3. 更好的划分访问层次:通过合理使用Facade,可以帮助我们更好地划分访问的层次。有些方法是对系统外的,有些方法是系统内部使用的。把需要暴露给外部的功能集中到门面中,这样既方便客户端使用,也很好地隐藏了内部的细节

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章