外观模式(Facade Pattern),我先说下我对这个设计模式的理解。
其实这个设计模式是为了解决,较为庞大或者较为复杂的系统,在程序员理解上不好理清头绪,这就相当于创建了一个目录,方便程序员进行查找,就类似于数据库的设计一样。我如果现在找一个新闻表的NewsTitle这个字段,我肯定是先找news新闻表,然后在新闻表中找这个字段,这样是比较好找的。但如果设想一下,我设计的数据库,全部没有表名,都是字段,那如果让你在其中找NewsTitle这个字段,肯定不好找。
所以这个设计模式大大降低了庞大或者较为复杂系统的可读性和可理解性。
但由于把复杂的类封装成一个比较简单的接口(interface)/类(class),这样必定增加了一些额外的性能开销。
下面来说下官方的定义:
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
Facade外观模式,是一种结构型模式,它主要解决的问题是:组件的客户和组件中各种复杂的子系统有了过多的耦合,随着外部客户程序和各子系统的演化,这种过多的耦合面临很多变化的挑战问题。