Head First 设计模式- 第十二章和第十三章笔记
复合模式
模式通常被一起使用,并被组合在同一个设计解决方案中。
复合模式在一个解决方案中结合两个或多个模式,以解决一般或重复发生的问题。
MVC是复合模式,结合了观察者模式、策略模式和组合模式。
模型使用观察者模式,以便观察者更新,同时保持两者之间解耦。
控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为。
视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮。
这些模式携手合作,把MVC模型的三层解耦,这样可以保持设计干净又有弹性。
适配器模式用来将新的模型适配成已有的视图和控制器。
复合模式结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。
真实世界中的模式
模式是在某情境(context)下针对某问题的某种解决方案。
反模式告诉你如何采用一个不好的解决方案解决一个问题。
桥接,使用桥接模式(Bridge Pattern)不只改变你的实现,也改变你的抽象。
生成器,使用生成器模式(Bulider Pattern)封装一个产品的构造过程,并允许按步骤构造。
责任链,当你想要让一个以上的对象有机会能够处理某个请求的时候,就是用责任链模式(Chain of Responsibility Pattern)。
蝇量,如想让某个类的一个实例能用来提升许多“虚拟实例”,就使用蝇量模式(Flyweight Pattern)。
解释器,使用解释器模式为语言创建解释器。
中介者,使用中介者模式来集中相关对象之间复杂的沟通和控制方式。
备忘录,当你需要让对象返回之前的状态时,就使用备忘录模式。
原型,当创建给定类的实例的过程很昂贵或很复杂时,就使用原型模式。
访问者,当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式。