一、概述

原型模式属于对象创建模式,通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个对象的方法创建出更多同类型的对象。

二、结构

1、简单形式

o_prototype1

Client:提出创建对象的请求

Prototype:抽象角色,给出所有具体原型类所需的接口

ConcretePrototype:被复制的对象

2、登记形式

o_prototype2

PrototypeManager:创建并记录具体对象

三、浅克隆与深克隆

浅克隆:仅做refrence一级的克隆,refrence所指的对象不被克隆

深克隆:将refrence所指的对象进行递归克隆,需考虑克隆深度及循环克隆问题

四、动机

替换较复杂的等级结构的工厂方法

五、优缺点

  1. 允许动态地增加或减少产品类,且对整个现有的产品结构没有影响
  2. 提供简化的创建结构
  3. 具有动态加载新功能的能力
  4. 产品类不需要有确定的等级结构
  5. 每一个类必须配备一个克隆方法