是什么
在调用大程序进行处理时,需要注意那些数量庞大的类之间复杂的关系,如果为这个大程序提供一个简单的窗口,就可以隐藏很多的复杂性。整理出窗口的方式就是Facade模式的应用。
使用Facade模式可以为互相关联的类整理出高层接口(API),其中Facade角色可以让系统对外只有一个简单的接口。
实际上这个Facade模式就相当于一个工具类,把复杂的逻辑和涉及的类封装起来,只提供简单明了的接口。
- 类图
总结
Facade模式可以让复杂的东西看起来简单,因为它将复杂的东西隐藏在内部,只公开了简单易用的接口,使得接口变少了。
接口变少意味着程序与外部的关联弱化了,这样更容易使得我们的包作为组件被复用。
在设计类时,我们需要考虑哪些方法的可见性设为public,如果公开的方法或字段太多,就会导致修改变得困难,因为一旦公开出去,代码就变得不可控,因为我们无法知道其他的类是如何使用这些方法和字段的。这也是需要封装的意义。
抽象工厂模式可以看作是生成复杂实例的Facade模式,提供了简单的接口来对应复杂的逻辑。