复合模式:结合两个或以上的模式,组成一个解决方案,解决一再发生的一般性问题。
headfirst设计模式一个复杂的鸭子项目:
多种鸭子,不同鸭子叫声、飞行、游泳方式不同 —— 策略模式
鹅,需要加入几只普通的鹅 —— 适配器模式
要统计鸭子叫声的次数 —— 装饰者模式
统一产生鸭子 —— 工厂模式
要管理一群鸭子 —— 组合模式(迭代器)
追踪某个鸭子的行为 —— 观察者模式
我们熟知的MVC架构就运用了复合模式:
1、观察者模式:模型是可观察者,视图示观察者,当模型状态发生改变时,会通知视图。
2、策略模式:对于视图来说,控制器就是策略。
3、组合模式:视图是GUI组件的组合。顶层组件包含其他组件,直到叶节点。