5种创建型设计模式横向对比
创建型设计模式主要作用是将一个对象的创建者和使用者分离。
序号 | 模式名称 | 构成要素 | 作用 |
---|---|---|---|
1 | 单例模式 | 1、单例类 (提供一个静态方法获取实例对象,判断实例是否存在,若存在直接返回该实例若不存在则创建新实例) 2、访问类 (调用单例类的静态方法,获取单例对象,调用单例对象的业务方法) |
某些类要求只能创建一个实例 |
2 | 原型模式 | 1、原型类(提供clone方法,可以直接赋值原型对象) 2、访问类 (创建实例对象,并调用改实例的clone方法来创建对象) |
对于大量相同或相似的对象,使用原型模式(提供clone方法)来创建。 |
3 | 工厂方法模式 | 1、工厂类 (完成产品的创建) 2、产品类 (描述产品的特性和功能) |
将产品对象的创建延迟到子工厂类中完成 |
4 | 抽象工厂方法模式 | 1、工厂类 (完成产品的创建,与工厂方法模式的区别是完成多个产品的创建) 2、产品类 (描述产品的特性和功能) |
将产品族对象的创建延迟到子工厂类中 |
5 | 建造者模式 | 1、产品类 (提供生产各部件的方法) 2、抽象建造者 (提供产品类的引用,提供获取产品的方法) 3、具体建造者 (实现产品各部件的创建) 4、指挥者 (提供具体产品的引用,提供获取产品的方法,该方法内调用各个部件的创建,调用获取产品的方法) |
用于创建一个由多个子部件按步骤组合而成复杂对象 |