创建型设计模式

本文简要介绍五种类创建型设计模式。

工厂方法(Factory Method)

工厂方法模式通常可以细分为两种:简单工厂和工厂方法。旨在通过创建方法来创建对象,从而隐藏对象的创建细节。

简单工厂:定义一个创建方法,通过参数来确定要创建的具体商品类型

工厂方法:定义工厂子类,每个子类负责创建一种具体商品

抽象工厂(Abstract Factory)

抽象工厂模式,每一个具体工厂都负责一系列商品的创建,且每个具体工厂创建的商品系列是一样的,比较容易理解。

建造者(Builder)

建造者模式,侧重于一步步构建一个复杂对象;与之类似的抽象工厂模式则关注构建一系列对象。

原型(Prototype)

原型模式,强调通过克隆已有的类实例来创建对象。

单例(Singleton)

单例模式,强调一个类只有唯一的实例。该设计模式的重点在于如何实现,不考虑线程安全时,分为懒汉式和饿汉式两种实现方法。

”懒汉式”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Singleton {
private:
static Singleton* instance;

private:
Singleton() {}

public:
static Singleton* GetInstance() {
if (instance == nullptr)
instance = new Singleton();
return instance;
}
};
Singleton* Singleton::instance = nullptr;

int main() {
auto s = Singleton::GetInstance();
return 0;
}

“饿汉式”

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Singleton {
private:
static Singleton* instance;

private:
Singleton() {}

public:
static Singleton* GetInstance() {
return instance;
}
};
Singleton* Singleton::instance = new Singleton();

int main() {
auto s = Singleton::GetInstance();
return 0;
}

评论