第一章 前言
第二章 观察者模式
第三章 状态模式
第四章 中介模式
第五章 装饰器模式
第六章 单例模式
第七章 克隆模式
第八章 职责链模式
第九章 代理模式
第十章 外观模式
第十一章 迭代模式
第十二章 组合模式
第十三章 构建模式
第十四章 适配模式
第十五章 策略模式
第十六章 简单工厂模式
第十七章 工厂方法模式
第十八章 抽象工厂模式
第十九章 命令模式
第二十章 备忘录模式
第二十一章 享元模式
第二十二章 访问模式
第二十三章 模板模式
第二十四章 桥接模式
第二十五章 解释器模式
第二十六章 过滤器模式
第二十七章 对象池技术
第二十八章 回调机制
第二十九章 MVC模式
附录
1. 核心思想
确保一个类只有一个实例,并且提供一个访问它的全局方法。
2. UML类图
3. 框架代码
使用装饰器实现
def singleton(cls):
"构造一个单例的装饰器"
instance = {}
def __singleton(*args, **kwargs):
if cls not in instance:
instance[cls] = cls(*args, **kwargs)
return instance[cls]
return __singleton
通过修改__new__
函数实现
class Singleton:
__instance = None
def __new__(cls):
if cls.__instance is None:
cls.__instance = super().__new__(cls)
return cls.__instance
4. 应用场景
- 你希望这个类只有一个且只能有一个实例。
- 项目中的一些全局管理类(Manager)可以用单例模式来实现。