【设计模式】创建型设计模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzh66888/article/details/83868688

创建型设计模式:

创建型设计模式和对象的创建有关,抽象了实例化的过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象

1、抽象工厂(Abstact Factory)

提供一个创建一系列相关或者相互依赖对象的接口,而无须制定它们具体的类
适用性:

  • 一个系统要独立于它的产品的创建、组合和表示时
  • 一个系统要由多个产品系列中的一个来配置时
  • 当要强调一系列相关的产品对象的设计以便进行联合使用时
  • 当提供一个产品类库,只想显示它们的接口而不是实现时

2、生成器(Builder)

将一个复杂对象的构建和表示分离,使得同样的构建过程可以创建不同的表示
适用性:

  • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时
  • 当构造过程必须允许被构造的对象有不同的表示时

3、工厂方法(Factory Method)

定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类
适用性:

  • 当一个类不知道它所必须创建的对象的类的时候
  • 当一个类希望由它的子类来指定它所创建的对象的时候
  • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候

4、原型(Prototype)

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象
适用性:

  • 当一个系统应该独立于它的产品创建、构成和表示时
  • 当要实例化的类是在运行时刻指定时,例如通过动态装载
  • 为了避免创建一个与产品类层次平行的工厂的工厂类层次时
  • 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们,可能比每次用合适的状态手工实例化该类更方便一些

5、单例(Singleton)

保证一个类仅有一个实例,并提供一个访问它的全局访问点
适用性:

  • 当类只能有一个实例而且客户可以从一个众所周知的访问点访问它时
  • 当这个唯一实例应该是通过子类化可扩展的,并且客户无须更改代码就能使用一个扩展的实例时

猜你喜欢

转载自blog.csdn.net/wzh66888/article/details/83868688