门面模式其实不是一种代码模式,而是一种设计思想,设计原则,根据这种思想设计出来的程序,模块与模块之间具有松耦合性。门面模式是连接两个对象之间的中介,两个对象的交流都通过这个中介传递。
其实广义上的门面模式有很多体现,如原始的计算机不存在软件,人直接控制硬件,后面才有软件,软件就是人与硬件的中介,这就是门面模式。进一步划分,操作系统又是软件与硬件的中介,而虚拟机等又是软件与操作系统的中介。
在代码中,一个典型的体现门面模式的应用是,读取数据库,应用通过数据库驱动器来连接数据库,而不是直接操作数据库,这样的好处是,当数据库类型改变时,应用代码不会有很大变化,这里面数据库与应用是变化的部分,而连接器类则是稳定的部分,是可复用的部分。
在平时的架构设计中,当两个模块出现紧耦合,则可以想想是否可以在中间设计一个中介,来达到松耦合。