创建型模式


 

创造型模式隐藏了这些类的实例是如何被创建和放在一起的,整个系统关于这些对象所知道的是由抽象类所定义的接口。这样,创建型模式在创建了什么、谁创建它、它是怎么被创建的,以及何时创建这些方法提供了很大的灵活性。

当一个系统应该独立于它的产品创建、构成和表示时,应该考虑用创建型模式。

创建型模式抽象了实例化的过程。它们帮助一个系统独立于如何创建、组合、和表示它的那些对象。创建型模式都会将关于该系统使用哪些具体的类的信息封装起来。允许客户用结构和功能差别很大的“产品”对象配置一个系统。配置可以是静态的,即在编译时指定,也可以是动态的,就是运行时再指定。

内聚性与耦合性:

内聚性描述的是一个例程内部组成部分之间相互联系的紧密程度。而耦合性描述的是一个例程与其他例程之间联系的紧密程度。

软件开发的目标应该是创建这样的例程:内部完整,也就是高内聚,而与其他例程之间的联系则是小巧、直接、可见、灵活的,这就是松耦合

 

抽象工厂模式(Abstract Factory)

提供一个创建一系列或相关依赖对象的接口,而无需制定它们具体的类。

AbstractFactory.png

 

建造者模式(Builder)

将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示。

Builder.png

 

工厂方法模式(Factory Method)

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

通常设计应该是从工厂方法模式开始,当设计者发现需要更大的灵活性时,设计便会向其他创建型模式演化。当设计者在设计标准之间进行权衡的时候,了解多个创建型模式可以给设计者更多的选择余地。

FactoryMethod.png

 

原型模式(Prototype)

用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

建立相应数目的原型并克隆它们通常比每次用合适的状态手工实例化该类更方便一些

Prototype.png

 

单例模式(Singleton)

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

对一些类来说,一个实例是很重要的。一个全局变量可以使得一个对象被访问,但它不能防止实例化多个对象。用单利模式可以让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且还提供了一个访问该实例的方法。

对唯一的实例可以严格地控制客户怎样以及何时访问它。

Singleton.png

 

参考文献

  • 《大话设计模式》 作者:程杰,清华大学出版社
  • 《Java与模式》 作者:阎宏,电子工业出版社

Categories: 设计模式