场景
小王团队要使用一个系统的接口,但是这个系统的接口有很多,而且相关的接口说明都有五六百页。小王只需要其中一部分接口就行。
如果让每个人都去读这些文档,那么这个将耽误大家的时间,而且每个人的理解都可能不一样,这就会造成很多问题。
怎么办呢?小王决定就自己一个人来读这个文档,选出要用的接口,重新包装并定义。这样大家就只需要理解和使用他包装的新的接口,其他的什么都不用管了。
这里小王做的,就是Facade 模式。
总结
意图:希望简化原有的系统的使用方式。需要定义自己的接口。
问题:只需要使用某个复杂系统的子集,或者,需要以一种特殊的方式与系统交互。
解决方案:为原来的用户提供一个新的接口。
效果:该模式简化了对所需子系统的使用过程。但是它不完整,所以用户可能无法使用某些功能。
Facade 模式应用于:
- 不需要使用复杂系统的所有功能,而且可以创建一个新的类,访问系统所有的规则。如果只需要访问系统的部分功能,那么这个新的API就要比原来的API简单很多。
- 希望封装或者隐藏原系统。
- 希望使用原系统的功能,同时希望增加一些新的功能。
- 编写新的接口的代价小于所有人都学会或者维护原来旧的API的代价。
网友评论