创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。再来回顾一下各个行为模式的意图和结构。
意图
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。
结构
工厂方法模式的基本结构如下:
这里涉及到的参与者有如下几种:
详见《工厂方法模式浅析》
意图
提供一个创建一系列或相互依赖对象的接口,而无需指定它们具体的类。
结构
抽象工厂模式的基本结构如下:
这里涉及到的参与者有如下几种:
详见《抽象工厂模式浅析》
单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。
1、单例模式的意图和要点
确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种对象创建型模型。
从上述描述中包含了3个要点:
根据单例的创建方式而言,单例的实现可以分为饿汉式和懒汉式两种。其中:
饿汉式是单例类被加载的时候就去创建一个单例实例,而懒汉式是在真正需要的时候才去创建单例实例。
饿汉式大致的图如下:
懒汉式
懒汉式单例和饿汉式单例的区别在于,懒汉式不是马上创建一个实例,而是在第一次被引用时才去创建单例实例。
懒汉式的类图结构如下:
详见《单例模式详解》
意图
将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
结构
建造者工厂模式的基本结构如下:
这里涉及到的参与者有如下几种:
Note:建造者模式是体现局部和整体关系的,产品是一步步构建,最终形成的一定是一个整体。
意图
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
结构
原型模式的基本结构如下:
这里涉及的参与者有如下几种: