【设计模式】创造型模式
/ / 点击 / 阅读耗时 4 分钟工厂方法
定义
结构
该模式中,定义一个抽象的产品以及抽象的工厂,具体产品与工厂的实现交给用户。
在具体实现中,可以利用Java的反射机制来避免修改代码。
适用场合
课程ppt上的说法是,“客户端不需要知道具体类,只需要知道其对应的工厂”。ppt上的表达我认为有一点含糊,真实的原因应该是“客户端不需要知道具体类以及其如何被构造,只需要知道其对应的工厂”。原因在于,我们可能需要生成一个html
文件,但是具体使用哪一个类去生成,这样的细节交给具体的工厂方法去考虑吧!
抽象工厂模式
定义
与工厂方法的最大区别在于,一个工厂方法往往只负责一种产品的创建,而抽象工厂则是负责多个产品的创建。
结构
与工厂方法相同,不过对应的抽象产品是多个,并且我们认为同一个抽象工厂中的产品是同一个产品族的(美的的空调不可以和格力的一块使用!)。
适用场合
当我们需要创建一系列的产品时。
建造者模式
定义
结构
有意思是Director
,可以理解为是创建的一个脚本。
Director
是可以省略的。
适用场合
- 需要建立的产品构造比较复杂;
- 产品的属性相互依赖(DAG),需要指明生成顺序;
- 对象的创建过程独立于创建该对象的类;
- 隔离复杂对象的创建以及使用。
hadoop
中的Configuration
就是建造者模式。
原型模式
定义
结构
单例模式
定义
结构
只有一个实例。
感谢阅读!欢迎评论嗷~