外观模式的作用是简化接口。它提供一个统一的接口用来访问子系统的一群接口。通过这个高层接口使子系统更容易使用。
同时,通过外观将客户从组件的子系统中解耦。
Head 1st中使用了家庭影院的例子来说明外观模式。
在家庭影院中有很多接口(类)。Dvd Player,Projector,Stereo, CD Player, Screen, Lights etc... 通过外观,我们可以将播放CD,播放DVD,结束播放等功能进行封装,简化这个系统的使用。
“最少知识”,Least Knowledge 设计原则
减少对象之间的交互,只和你的密友谈话。我们既要通过包装,外观来减少对象之间的交互,但又要防止过度的包装,外观。(引入过多的类)。这里似乎包含了平衡的哲学。
回头再总结一下3种和接口相关的模式的作用:
装饰(Decorator):不改变接口,加入责任。
适配器(Adaptor):将一个接口转成另一个接口。
外观(Facade):让接口更简单。