设计模式(创建型)

233 阅读2分钟

创建型模式,共五种: 

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

1.单例模式

确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。

实现关键点:

  1. 构造函数不对外开放,一般为private;
  2. 通过一个静态方法或者枚举返回单例类对象;
  3. 确保单例类的对象有且只有一个,尤其是在多线程环境下;
  4. 确保单例类对象在反序列化时不会重新构建对象。

实现方式:

  1. 饿汉模式
  2. 懒汉模式
  3. Double Check Lock模式
  4. 静态内部类模式
  5. 枚举单例
  6. 使用容器

2.Builder模式

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

一般实现为链式调用,关键点是每个setter方法返回自身。

3.原型模式

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

多用于创建复杂的或者构建耗时的实例。

4.工厂方法模式

定义一个用于创建对象的接口,让(工厂)子类决定实例化哪个类。

子类指实现工厂方法的工厂类,工厂方法返回抽象产品类,子类的生产方法决定实例化哪个产品类。

5.抽象工厂

抽象工厂提供一组相关接口,用来生产一个相关产品的组合。

使用不同的具体工厂,生产出来的产品组合(可以把这个组合当做一个具体产品)不同,因为每个具体工厂生产什么具体产品组合,都是由具体工厂来实现的。

分离接口与实现,但是类文件爆炸,也不容易扩展。