创建型设计模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被是实例化的类,而一个对象创建型模式将实例化委托给另一个对象。
随着系统演化得越来越依赖于对象符合而不是类继承,创建型模式变得尤为重要。
1:抽象工厂Abstract Factory
提供一个创建一系列相关或相互依赖的接口,而无须直顶它们具体的类。
我们可以把
适用于:
一个系统独立于它的产品的创建、组合和表示时
一个系统要由多个产品系列中的一个来配置时
当要强调一系列相关的产品对象的设计以便进行联合使用时
当提供一个产品呢类库,只想显示它们的接口而不是实现时
2生成器Builder
意图:将一个复杂对象的构建和它的表示分离,是的相同的构建过程可以创建不同的表示。
就比如说我们看到的WINDOWS界面,可以使用大图标浏览,也可以使用小图标浏览,就采用了这个模式。
适用于:
当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
当构建过程必须允许被构造方法的对象有不同的表示时。
3:工厂方法Factory Method
意图:定义一个用于创建对象的接口,让一个子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
适用于:
当一个类不知道他所必须创建的对象的类的时候对的
当一个类希望由它的子类所指定它所创建的对象的时候
当类将创建对象的指责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类时代理者这一信息局部化的时候
4原型Prototype
意图:用原型实例指定创建对象的种类,并且通过赋值这些原型创建新的对象
适用于:
当一个系统应该独立于它的产品创建、构成和表示时。
当要实例化的类时运行时指定时,例如通过动态装载
为了避免创建一个于产品层次平行的工厂类层次时
当一个类的诗里只能几个不同状态组合中的一种时。
5:单例模式Sinleton
意图:保证一个类仅有一个实例,并提供一个访问他的全局访问点
适用于:
当类只能由一个实例可以从一个众所周知的访问点访问它时
当这个唯一诗里应该是通过子类化可拓展的,并且客户无需更改代码就能使用一个扩展的实例时