外观模式 facade

定义:提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
示意图:


应用场景:clients 对Subsystem Classes的调用有时是很繁杂的,而这些复杂的调用逻辑对于Clients是不必要的。我们可以把复杂的调用逻辑分装到Facade,然后通过Facade间接调用。
实现目标:
1。简化调用
               2。封装变化  如果clients 直接调用Subsystem classes,一旦调用方式需要改变。那么这种改变将设计到系统中的所有Client。如果用到Facade那么改                    变只会涉及到Facade。
               3。减少耦合  在clients 直接调用Subsystem classes的情况下,clients 是需要Subsystem classes 的大量的类通信的。如果在使用Facade时还没有                    解除耦合那么至少你至少从多个耦合减少到一个耦合。
这个模式很简单代码就不写了。