原型模式用于复制对象,抽象产品类定义复制自身的方法,实体产品类继承抽象产品类并实际实现复制方法,在客户使用时直接调用该复制方法即可。
为什么要使用这个模式
当有产品经常需要进行复制,而且该产品的复制方法比较复杂而且很可能非常多变,更加可能的是客户需要使用许多种该类产品,这种情况下就非常适合用原型模式。
原型模式概述
原型模式核心包括2个角色:
1. 抽象产品类IC(接口IA),该类定义了复制自身的方法
2. 实体产品类,实现上述接口A或继承抽象类IC,实际实现复制方法
客户一般使用方法(假设实体产品类为PA和PB,IA定义的接口方法为Clone):
IA a = new PA(); IA b = new PB(); IA c = a.Clone(); IA d = b.Clone();