1. 单例模式
保证runtime时,只有一个特定的实例
# 1.1 use decorators
def sigleton(cls, *args, **kwargs):
instance = {}
def _get_instance():
if cls not in instance:
instance[cls] = cls(*args, **kwargs)
return instance[cls]
return _get_instance
# test
@sigleton
class BaseClass(object):
pass
a1 = BaseClass()
print a1
a2 = BaseClass()
print a2
2. 适配器模式
将一个类的接口,转换成另一个类的接口,使原本不兼容不能一起工作的类,可以一起工作
3. 策略模式
运行时决定行为
4. 工厂模式
单个函数里面封装了多个创建,通过提高上下文,返回合适的对象。
5. 装饰器模式
给多个实例加上相同行为
网友评论