软件设计模式简介

软件模式是将模式的一般概念应用于软件开发领域,即软件开发的 总体指导思路或参照样板。软件模式并非仅限于设计模式,还包括 架构模式、分析模式和过程模式等,实际上,在软件生存期的每一个阶段都存在着一些被认同的模式。下面重点介绍各种经典的设计模式。

创建型模式

简单工厂模式( Simple Factory Pattern )

工厂方法模式(Factory Method Pattern)

抽象工厂模式(Abstract Factory)

建造者模式

单例模式

单例是指在程序运行周期内有且只有一个实例化的对象。

根据实例化的时机,主要分为饿汉和懒汉两种。

饿汉

第一次获取实例前就已经创建好。

1
2
3
4
5
6
7
8
9
10
11
class Singleton {
public:
static Singleton* GetInstance();
private:
static Singleton* instance_;
};
Singleton* instance_ = new Singleton(); // 已经创建好

Singleton* Singleton::GetInstance() {
return instance_;
}

懒汉

第一次获取实例时才创建。懒汉方式下会存在线程安全问题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Singleton {
public:
static Singleton* GetInstance();
private:
static Singleton* instance_;
};
Singleton* instance_ = nullptr; // 静态变量的初始化,默认为nullptr

Singleton* Singleton::GetInstance() {
if (instance_ == nullptr) {
instance_ = new Singleton(); // instance_为空时才创建
}
return instance_;
}

结构型模式

适配器模式

桥接模式

装饰模式

外观模式

享元模式

代理模式

行为型模式

命令模式

中介者模式

观察者模式

状态模式

策略模式

参考链接

  1. 图说设计模式,by me115.
  2. 【置顶】探究osg中的程序设计模式【目录】,by 3wwang.
  3. 解释器模式(详解版),by c.biancheng.
  4. C++各类设计模式及实现详解,by linux.
  5. The Catalog of Design Patterns,by refactoringguru.
  6. C++ 静态单例,by sinat_31135199.
  7. 单例模式对象的删除,by hahacaidao.