定义
原型模式主要用于创建重复的对象,同时又能保证性能。
原型模式所需的三个组成部分:
- 客户端通过要求原型克隆其自身来创建一个新的对象
- 原型声明一个用于克隆自己的接口
- 具体原型实现用于克隆器自身的操作
使用场景
在某些情况下,实例化一个类需要消耗的资源比较多,代价比较大,比如实例化需要读取文件,或者需要在一个高代价的数据库操作之后被创建,如果我们要实例化多个实例,就需要进行多次高代价操作,这个时候使用原型模式,就可以只进行一次高代价操作,后面通过克隆来进行实例化。
代码实例
从实现的角度来说,原型模式主要就是一个clone()函数,因此在实现的时候,需要定义一个抽象类,并在抽象类中定义clone()接口,要求子类必须实现。
from abc import ABCMeta, abstractmethod
from copy import deepcopy
class Prototype