原型模式学习笔记

简介

原型模式是一种创建型设计模式,它允许复制已有对象来生成新的对象,而不必通过重新实例化一个类来创建新的对象。这种模式通常用于需要复制或重复生成相似对象的场景。

实现方式

在实现原型模式时,需要一个“原型”对象,该对象可以被复制以生成新的对象副本。这个原型对象必须实现一个特殊的接口或继承一个抽象类,使得它可以进行复制操作。通常,原型对象的构造函数不会被直接调用,而是通过克隆方法来生成副本。

示例

以下是一个简单的原型模式示例,使用了一个Computer类作为原型对象,并通过该对象克隆出了两个新的副本:

pythonCopy Code
import 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,并使用该对象的克隆方法来生成新的副本computer1computer2

最后,修改了克隆出的两个新对象的某些属性,从而展示了原型模式的灵活性和方便性。