一、Python创建型设计模式
1、工厂模式(Factory):解决对象创建问题
2、构造模式(Builder):控制复杂对象的创建
3、原型模式(Prototype):通过原型的克隆创建新的实例
4、单例模式(Brog/Singleton):一个类只能创建同一个对象
5、对象池模式(Pool):预先分配同一类型的一组实例
6、惰性计算模式(Lazy Evaluaion):延迟计算(Python的property)
(1)工厂模式
解决对象创建问题,解耦对象的创建和使用,包括工厂方法和抽象工厂
# 工厂方法的一个例子
class Dog:
def speak(self):
print("WangWang!")
class Cat:
def speak(self):
print("MiaoMiao!")
def animal(speak_type):
if speak_type == 'Dog':
return Dog()
elif speak_type == 'Cat':
return Cat()
(2)构造模式
用来控制复杂对象的构造,创建和表示分离。比如买电脑,工厂模式直接给你电脑而构造模式则允许自己自定义电脑的配置,组装后给你
# 构造模式的一个例子
class Computer:
def __init__(self, serial_number):
self.serial = serial_number
self.memory = None
self.hdd = None
self.gpu = None
def __str__(self):
info = ('Memory: {}GB'.format(self.memory),
'Hard Disk: {}GB'.format(self.hdd),
'Graphics Card: {}'.format(self.gpu))
return '\n'.join(info)
class ComputerBuilder:
def __init__(self):
self.comput