《设计模式》中定义Facade模型是这样叙述的:
为了系统中的一组接口提供一个统一的接口,Facade模型地故意了一个更高层的接口,使得子系统更加容易使用。
意图:一个一致的高层接口。
举个通俗的例子:
::物体A(应用程序)要访问::物体B(数据库)
但是这个底层的数据库要经常性的变动,或许这个系统需要orcale数据库,或许另外一个需要用到My Sql。
这个时候数据库的变动必然要求应用程序的数据库连接层要改动不少的代码,而且具体的操作类中也要涉及到大量的代码变动。
这样会导致系统的可扩展性很差。
这种情况出现的时候,Facade模型开始派上用场,利用接口封装,把方法全部抽象出来,应用程序只需针对虚类的多态性进行操作。
虚类的实现就会成就了应用程序不同的数据库的访问,增加了系统的灵活性。
Facade模式提出了一种通用方法;它为我们提供了起点。这个模式的Facade部分实际上就是创建了一个新的接口供客户使用,来代替系统的原有接口。
以上就是Facade模型。