门面模式
2011-07-21 17:09 卫佳 阅读(238) 评论(0) 编辑 收藏 举报门面模式(facade)又称外观模式。GOF在《设计模式》一书中给出如下定义:为子系
统中的一组接口提供一个一致的界面, FacadeWenZhou Sunglasses模式定义了一个高层接口,这个接口使得这
一子系统更加容易使用。
定义中提到的子系统是指在设计中为了降低复杂性根据一定的规则(比如业务、功能),
对系统进行的划分。子系统中封装有一些类。客户程序在使用子系统的时候,可能会像下图
一样零乱。
在上面的实现方法中,客户类紧紧地依赖在子系统的实现上。子系统发生的变化,很可
能要影响到客户类的调用。而且子系统在不断优化、可重用化的重构路上,会产生更多更小
的类。这对使用子系统的客户类来说要完成一个工作流程,似乎要记住的接口太多了。
门面模式就是为了解决这种问题而产生的。看看使用了门面模式后的图:
这样就减少了客户程序和子系统之间的耦合,增加了可维护性。
很明显,门面模式有三个角色组成:
1) 门面角色(facadeReading Glasses with Case):这是门面模式的核心。它被客户角色调用,因此它熟悉子系统的
功能。它内部根据客户角色已有的需求预定了几种功能组合。
2) 子系统角色:实现了子系统的功能。对它而言,facade角色就和客户角色一样是未知的,
它没有任何facade角色的信息和链接。