原型模式

原型模式要求对象实现一个可以克隆自身的接口(类型)。这样一来,通过原型实例创建新的对象,就不需要关心这个实例本身的类型,只需要实现克隆自身的方法,也而无需再去通过new来创建。

角色

客户(Client)角色客户类提出创建对象的请求;

抽象原型(Prototype)角色:抽象角色,通常由一个Java接口或者Java抽象类实现。此角色定义了的具体原型类所需的实现的方法。

具体原型(Concrete Prototype)角色:此角色需要实现抽象原型角色要求的克隆相关接口

原型管理器(Prototype Manager)角色:提供各种原型对象创建管理

总结

优点

原型模式允许在运行时动态改变具体的实现类型。原型模式可以在运行期间,有客户来注册符合原型接口的实现类型,也可以动态的改变具体的实现类型,看起来接口没有任何变化,但是其实运行的已经是另外一个类实体了。因为克隆一个原型对象就类似于实例化一个类