设计模式之门面模式
设计模式的门面模式是一个非常容易理解的模式,有点像适配器模式,不过与之不同的是,门面模式注重降低复杂度,提供统一的封装接口。
门面模式又有外观模式的说法,为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
门面模式是指在设计中为了降低复杂度根据一定的规则,对系统进行的划分。
简单来说,一般情况下客户程序在使用子系统的时候,可能会像下图:
在上面的实现方法中,客户类需要掌握的接口很多,子系统发生变化后客户端可能需要及时地跟进,系统间耦合性太强,很不方便使用,而门面模式的解决方式是:
门面模式通过门面角色的维护,减少了客户程序和子系统之间的耦合,提高了代码安全性。
门面模式的典型应用就是进行数据库连接。一般我们在每一次对数据库进行访问,都要进行一下操作:先得到connect实例,然后打开connect获取连接,得到一个statement,执行SQL语句进行查询,得到查询结果。
我们可以把这些步骤提取出来,封装在一个类里面。这样,每次执行数据库访问只需要将必要的参数传递下去就可以了。