原型模式学习笔记
简介
原型模式是一种创建型设计模式,它允许复制已有对象来生成新的对象,而不必通过重新实例化一个类来创建新的对象。这种模式通常用于需要复制或重复生成相似对象的场景。
实现方式
在实现原型模式时,需要一个“原型”对象,该对象可以被复制以生成新的对象副本。这个原型对象必须实现一个特殊的接口或继承一个抽象类,使得它可以进行复制操作。通常,原型对象的构造函数不会被直接调用,而是通过克隆方法来生成副本。
示例
以下是一个简单的原型模式示例,使用了一个Computer类作为原型对象,并通过该对象克隆出了两个新的副本:
pythonCopy Codeimport copy
class Computer:
def __init__(self, cpu, ram, storage):
self.cpu = cpu
self.ram = ram
self.storage = storage
def clone(self):
return copy.deepcopy(self)
# 创建原型对象
computer_prototype = Computer("Intel Core i7", "16GB", "512GB SSD")
# 克隆新对象
computer1 = computer_prototype.clone()
computer2 = computer_prototype.clone()
# 修改克隆出的对象属性
computer1.ram = "32GB"
computer2.storage = "1TB HDD"
print(computer_prototype.cpu, computer_prototype.ram, computer_prototype.storage) # 输出: Intel Core i7 16GB 512GB SSD
print(computer1.cpu, computer1.ram, computer1.storage) # 输出: Intel Core i7 32GB 512GB SSD
print(computer2.cpu, computer2.ram, computer2.storage) # 输出: Intel Core i7 16GB 1TB HDD
在上述示例中,首先创建了一个名为Computer
的类作为原型对象,并实现了一个克隆方法clone
。然后,通过创建一个原型对象computer_prototype
,并使用该对象的克隆方法来生成新的副本computer1
和computer2
。
最后,修改了克隆出的两个新对象的某些属性,从而展示了原型模式的灵活性和方便性。