第六章第二节 可维护的设计模式
创造性模式:Creational patterns
- Factory Method pattern
使用非静态工厂:
静态方法:
符合了原则:Open-Closed Principle (OCP)
- Abstract Factory
方法:提供接口以创建一组相关/相互依赖的对象,但不需要指明其具体类
举例:
NetworkNetconnection,只有Computer/Server/Router, 和NetworkConnection,因此可以采用抽象工厂模式。
- Builder模式
1.创建复杂对象,包含多个组成部分
2.创建的是一个完整的产品,有多个部分组成,client 不需了解每个部分是怎么创建、各个部分怎么组合,最终得到一个产品的完整object
理解:对于要创建的pizza对象,由于有多种pizza类型,但是我们不选择派生pizza的子类,而是选择派生pizzaBuilder的子类,并重写方法:setxxx().
最后再调用的时候,需要再定义一个类waiter,构造函数中传入pizzabuilder,相当于聚合的方式。
并定义一个constrution()函数,创建pizza并根据set函数设置属性。
最后有一个getpizza函数来获得构建的pizza。
结构化模式:Structual patterns
桥接模式(Bridge Pattern)
代理模式(Proxy Pattern)
组合模式(Composite Pattern)
行为化模式:Behavioral patterns
中介者模式(Mediator Pattern)
观察者模式(Observer Pattern)
访问者模式(Visitor Pattern)
责任链模式(Chain of Responsibility Pattern)
命令模式(Command Pattern)