首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 其他相关 >

17.门脸模式(FacadePattern)

2012-11-23 
17.门面模式(FacadePattern)1.定义要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模

17.门面模式(FacadePattern)

1.定义

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。
门面模式提供一个高层次的接口,使得子系统更易于使用。
门面模式注重“统一的对象”,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生。
门面对象是外界访问子系统内部的唯一通道,不管子系统内部是多么杂乱无章,只要有门面在,就可以做到“金玉其外败絮其中”。

?

2.门面模式的使用场景

?为一个复杂的模块或子系统提供一个工外界访问的接口子系统相对独立-外界对子系统的访问只要黑箱操作就行了预防低水平人员带来的风险扩散

门面模式很简单,无非就是对外只提供一个门面暴露外界需要的API,请看下面的通用代码

?

package _17FacadePattern;/** * 子系统中的门面4,将3中包含的业务逻辑封装到一个业务类中 */public class Facade4 {private ClassA classA = new ClassA();private Context context = new Context();// 对外暴露的APIpublic void methodA() {classA.doSomethingA();}public void methodB() {context.methodB();}}

?

?

通过这样一次封装后,门面对象又不参与业务了,在门面模式中,门面角色应该是稳定的,它不应该经常变化,一个系统一旦投入运行,它就不应该被改变,它是一个系统对外的接口,你经常变化怎么保证其他模块的稳定运行呢?但是,业务逻辑是经常改变的,我们已经把它封装在子系统内部,无论你如何变化,对外界的访问者来说,都还是同一个门面,同样的方法-这才是架构师最希望看到的结构。

热点排行