创建型设计模式:创建型模式抽象了实例化过程。它们帮助一个系统独立于如何创建、组合和表示它的那些对象。一个类创建型模式使用继承改变被实例化的类,而一个对象创建型 模式将实例化委托给另一个对象。
创建型模式特点:
1),它们都将关于该系统使用哪些具体的类的信息封装起来。
2),隐藏了这些类的实例是如何被创建和放在一起的
创建型模式分类:
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
抽象工厂适用场合:
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
结构图:
builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
builder适用性场合:
1),当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2),当构造过程必须允许被构造的对象有不同的表示时
AbstractFactory与Builder的区别:Builder模式着重于一步步构造一个复杂对象。而Abstract Factory着重于多个系列的产品对象(简单的或是复杂的)。Builder在最后的一步返回产品,而对于AbstractFactory来说,产品是
立即返回的。
创建型模式特点:
1),它们都将关于该系统使用哪些具体的类的信息封装起来。
2),隐藏了这些类的实例是如何被创建和放在一起的
创建型模式分类:
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类;
抽象工厂适用场合:
一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。
结构图:
builder模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示
builder适用性场合:
1),当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
2),当构造过程必须允许被构造的对象有不同的表示时
AbstractFactory与Builder的区别:Builder模式着重于一步步构造一个复杂对象。而Abstract Factory着重于多个系列的产品对象(简单的或是复杂的)。Builder在最后的一步返回产品,而对于AbstractFactory来说,产品是
立即返回的。