Head First 设计模式 14-复合模式
复合模式
模式通常被一起使用,并被组合在同一个设计解决方案中。
复合模式在一个解决方案中结合两个或多个模式,以解决一般或重复发生的问题。
书中以 MVC(Model-View-Controller)为例,讲解了其中使用到的设计模式。
策略模式
视图是一个对象,可以被调整使用不同的策略,而控制器提供了策略。
观察者模式
模型实现了观察者模式,当模型的状态改变,相关视图对象也会跟着改变。
组合模式
视图是各种 UI 组件的组合。顶层的组件包含其它组件,直到叶节点。
这些模式携手合作,把 MVC 模型的三层解耦,这样可以保持设计干净又有弹性。
与设计模式相处
这是本书的最后一章。
模式 是在某情境(context)下,针对某问题的某种解决方案。
模式分类
根据模式的目标分成三个不同类目:
创建型
创建型模式涉及到将对象实例化,这类模式都提供一个方法,将客户从所需要的实例化的对象中解耦。
- Singleton 单件
- Builder
- Prototype
- Abstract Factory 抽象工厂
- Factory Method 工厂方法
行为型
只要是行为型模式,都涉及到类和对象如何交互及分配职责。
- Template Method 模板方法
- Visitor
- Mediator
- Iterator 迭代器
- Command 命令
- Memento
- Interpreter
- Observer 观察者
- Chain of Responsibility
- State 状态
- Strategy 策略
结构型
结构性模式可以让你把类或对象组合到更大的结构中。
- Decorator 装饰者
- Composite 组合
- Adapter 适配器
- Proxy 代理
- Facade 外观
- Flyweight
- Bridge
另外还可以根据模式所处理的是类还是对象来分类。
设计模式经典书籍
四人组(Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides)合著的《设计模式:可复用面向对象软件的基础》。
该书在 1995 年出版,揭开了设计模式的序幕。
反模式
反模式 告诉你如何采用一个不好的解决方案解决一个问题。
通过将反模式归档,我们能够帮助其他人在发现它们之前,分辨出不好的解决方案。
像模式一样,有许多类型的反模式,包括了开发反模式、OO 反模式、组织反模式和领域特定反模式。
反模式告诉你才用这个解决方案,在将来会为你带来怎样的麻烦,同时也会为你指出正确的方向,向你建议一些会引向好的解决方案的可能性。