23-17,门面模式

1、门面模式(Facade Pattern)也叫外观模式,是一种比较常用的封装模式,其定义如下: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(要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行,门面模式提供一个高层级的借口,使得子系统更便于使用。)

2、门面模式的角色
  一、Facade-门面角色
  客户端可以调用这个角色的方法,此角色知晓子系统的所有功能和职责。一般情况下,本角色会将所有从客户端发出的请求委派到相应的子系统去,也就是说该角色没有实际的业务逻辑,只是一个委托类。
  二、subsystem-子系统角色
  可以同时有一个或者多个子系统,每一个子系统都不是一个单独的类,而是一个类的聚合。子系统并不知道门面的存在,对于子系统而言,门面仅仅是另外一个客户端而已。

3、门面模式的优点
  一、减少系统的相互依赖。
  如果我们不使用门面模式,外界访问可以直接深入到子系统内部,相互之间是一种强耦合关系。这样的强依赖是系统设计所不能够接受的。门面模式的出现就很好的解决了这个问题,所有依赖都是对门面对象的依赖,与子系统无关。
  二、提高了灵活性。
  依赖减少了,灵活自然就提高了。不管子系统内部如何变化,只要不影响到门面对象,任你自由活动。
  三、提高安全性
  想让你访问子系统的那些业务就开通那些逻辑。不在门面上面开通方法,你休想访问到。

4、门面模式最大的缺点就是不符合开闭原则。对修改关闭,对扩展开发。一旦系统投产后发现一个小错误,就要修改门面角色的代码,这个风险太大。这个需要在设计的时候慎之又慎,多思考几遍才会有好收获。

你可能感兴趣的:(门面模式)