外观模式(Facade),也叫门面模式,是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口,使用子系统更容易使用。Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合对系统日后的维护、扩充、移植、重用等方面都是非常不利的。
那么在什么时候使用外观模式呢?我们可以先来看一个日常生活中的例子。假如某软件公司有两个开发小组,每个开发小组有5名程序员,现在两个小组共同开发一个应用系统,每个小组各负责一个模块,两个模块之间需要交换数据。在开发过程中,两个小组的程序员需要相互协商相关的规则与标准。在项目刚开始不久,有一天,一个小组的程序员小王需要请假一周,在请假前,小王必须跟另一个小组的每一个程序员都做好相关工作交接。这样小王就必须要跟五个人进行沟通,需要沟通五次。一个月后,两个小组各自产生一名组长,两个小组之间需要沟通、协调相关的规范与标准时,由两个组长直接讨论、协商。有一天,另一个程序员小张也请假一周,这次小张只对本组组长进行工作交接,没有与另一组程序员进行任何的交待。在请假期间,如果另一个开发小组的工作牵涉到小张,那么他们直接与组长沟通即可。这样,小张这次请假只需要与组长沟通一次即可,比起上一次小王的请假就非常简单、方便。小张这种请假方式就是外观模式的一个很好体现。(www.xing528.com)
外观模式的设计原则是最少知识原则:只和你的密友谈话。刚才的例子可以这样理解:每个开发小组的程序员尽量少地与其他小组的成员通信,只与本组的成员紧密沟通合作,当需要与其他小组交互时,由组长负责对外沟通。按照程序结构,可以这样理解:模块之间的每一个类避免与其他模块直接通信,但却要加强模块内各类之间的内聚性交互,如果要与其他模块通信,则通过接口进行。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。