摘自大话设计模式

创建型模式 创建型模式隐藏了这些类的实例是如何被创建和放在一起,整个系统关于这些对象所知道得是由抽象类所定义的接口。这样,创建型模式在创建什么,谁创建他,他是如何被创建的,以及何时创建这些方面提供了很大的灵活性。 创建型模式抽象了实例化的过程,他们帮助一个系统独立于如何创建、组合和表示他的那些对象。创建型模式都会将关于该系统使用哪些具体的类的信息封装起来,允许客户用结构和功能差别很大的产品对象配置一个系统。配置可以是静态的(编译时指定),也可以是动态的(运行时指定)。 当一个系统应该独立于它的产品创建、构成、表示时,应该考虑用创建型模式。 创建的目标是:高内聚低耦合。

1、抽象工厂模式:提供一个创建一系列或相关依赖对象的接口,而无需指定他们具体的类。 可以解决多个类型产品的创建问题。Hibernate的同一对象与多个数据库的ORM就是通过他实现。 特点:臃肿 2、建造者模式:将一个复杂对象的构建与他的表示相分离,使得同样的构建过程可以创建出不同的表示。 构建与表示分离,就很容易改变一个产品的内在表示,并设构建代码和表示代码分离。这样对于客户来说,他无需关心产品的创建过程,而只需要告诉指挥者需要什么,就能通过相同的建筑过程构建出不同的产品。但是很少有产品建造过程是一样的。

3、工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪一个类,此模式让一个类的实例化延迟到其子类。 设计一般都是从工厂开始,其他模式都是工厂方法模式的变体。当需要需要更大的灵活性的时候,往往设计会转变为其他的创建者模式。

4、原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 建立相应数目的原型并克隆他们通常比每次用合适的状态手工实例化该类更方便。

5、单例模式:保证一个类只有一个实例,并提供一个全局访问点。