看了很多本关于设计模式的书,大多书都会把这种模式— 外观模式放在第一个位置介绍。
在《设计模式》一书中是这么介绍外观模式的: 为子系统中的一组接口提供一个统一接口。Facade 模式定义了一个更高层的接口,使子系统更加容易使用。
这段话大致意思是说:我们需要用一种比原来更简单的方式,与系统进行交互。也就是说,给子系统提供一个脸面。
举例说明:原来有一个旧的系统A ,这个系统已经很久没有人维护了。现在有个项目,需要将新的系统B 与旧的系统A 进行交互。遇到这种情况怎么办?是让项目组的所有人员都去熟悉旧系统?这个时候外观模式就应该登场了。使用外观模式,将旧系统中的一些功能和方法进行必要的封装。项目组的其他开发人员,只需要调用封装后的方法即可。
当然,也可以在接口中添加一些新的功能。
Facade 模式可以应用于:
● 不需要使用一个复杂系统的所有功能,而且可以创建一个新的类,包含访问系统的所有规则。如果只需要使用系统的部分功能(这是通常的情况),那么你为新类所创建的 API 将比原系统的 API 简单得多。
● 希望封装或者隐藏原系统。
● 希望使用原系统的功能,而且还希望增加一些新的功能。
● 编写新类的成本小于所有人学会使用或者未来维护原系统上所需的成本。
这种模式,其实在很多应用中都很常见。只是大家在使用的时候,并没有在意他也是一种设计模式罢了。模式很简单,就不用代码举例说明了。