文章目录
分为三大类,创作模式,结构模式和行为模式
6.2.1 Creational Patterns
Factory Method Pattern
一般情况下我们采用new创建一个新的对象
但是在static Factory Method Pattern中我们采用static方法创建新的类
使用static的好处与坏处
如果使用Factory Method Pattern,通过定义工厂父类负责定义创建对象的公共接口,而工厂子类则负责生成具体的对象。(比如Graph中的emptyt())比如:
工厂模式的使用场景:
使用工厂模式的优缺点
Abstract Factory Pattern
抽象工厂的含义以及和普通工厂的区别:
适用场景
抽象工厂的结构,图解:
Builder
具体含义: 将复杂对象的构造与其表示分开,以便相同的构建过程可以创建不同的表示,从而组装复杂的实例。如图所示:
Builder和Abstract Factory的对比
6.2.2 Structural patterns
具体含义:将抽象概念与实现分离,避免过于复杂的继承结构。将类的功能层次结构(abstract)与实现层次结构分离(implementation)。如:下面的例子使用两个implements将extends变得更加简单,否则在继承中需要取考虑具体类型
Proxy
用途:避免对象被客户端直接访问
设计模式图解:
Composite
解决问题:容器中具有基本元素和组合元素两类,如何以统一的方式访问所有的元素
解决办法:用递归方式访问