JAVA实现原型模式
环境:
邮件复制功能,邮件对象包含的内容较多(发送者、接收者、标题、内容、日期等),对于已经创建好的邮件对象,可以通过复制的方式创建一个新的邮件对象,如果需要改变某部分内容,无须修改原始的邮件对象,只需要修改复制后得到的邮件对象即可
问题:
需要创建多个相同或者相似的对象且各对象之间是相互独立的,这个类结构复杂(如构造函数极复杂),使用New实例化对象耗时长,代价高
解决方案:
通过复制现有的对象(自身)来创建新的对象(原型模式)
角色:
Prototype(抽象原型类):针对抽象原型类编程,用户可以根据需要选择具体的原型类,系统具有较好的扩展性,增加或者更换原型类都很方便
ConcretePrototype(具体原型类)
Client(客户类)
Prototype.java