天天看点

Java设计模式--外观模式外观模式Facade Pattern类图模式的结构与使用简单的例子运行截图外观模式的优点适用外观模式的情景下载源码请到

为系统中的一组接口提供一个一致的界面,facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

provide a unified interface to a set of interfaces in a subsystem. facade defines a higher-level interface that makes the subsystem easier to use.

Java设计模式--外观模式外观模式Facade Pattern类图模式的结构与使用简单的例子运行截图外观模式的优点适用外观模式的情景下载源码请到

外观模式的结构中包两种角色。

+ 子系统(subsystem):子系统是若干个类的集合,这些类的实例协同合作为用户提供所需要的功能,子系统中任何类都不包含外观类的实例引用。

+ 外观(facade):外观是一个类,该类包含子系统中全部或部分类的实例引用,当用户想要和子系统中的若干个类的实例打交道时,可以代替地和子系统的外观类的实例打交道。

Java设计模式--外观模式外观模式Facade Pattern类图模式的结构与使用简单的例子运行截图外观模式的优点适用外观模式的情景下载源码请到

使客户和子系统中的类无耦合,并且使子系统使用起来更加方便。

外观只是提供了一个更加简洁的界面,并不影响用户直接使用子系统中的类。

子系统中任何类对方法的内容进行修改,不影响外观类的代码。

对于一个复杂的子系统,需要为用户提供一个简单的交互操作。

不希望客户代码和子系统中的类有耦合,以便提高子系统的独立性和可移植性。

当整个系统需要构建一个层次结构的子系统,不希望这些子系统相互直接的交互。

<a href="https://github.com/androidwolf">mygithub</a>