感想
原型模式:通过复制现有实例来创建新的实例,无须知道相应类的信息。
原型模式的优点:
- 使用原型模式创建对象比直接new一个对象更有效。
- 隐藏制造新实例的复杂性。
- 重复地创建相似对象可以考虑使用原型模式。
原型模式的缺点:
- 每一个类必须配备一个克隆方法。
- 深层复杂比较复杂。
原型模式的注意事项:
- 使用原型模式复制对象不会调用类的构造方法。所以,单例模式与原型模式是冲突的,在使用时要特别注意。
- Object类的clone方法只会拷贝对象中的基本的数据类型,对于数组、容器对象、引用对象等都不会拷贝,这就是浅拷贝。如果要实现深拷贝,必须将原型模式中的数组、容器对象、引用对象等另外拷贝。
以下例子以发送邮箱作为实际开发。
a.创建一个事件的模板:
1 | public class EventTemplate { |
b.实现Cloneable接口的邮件对象:
1 | import java.util.ArrayList; |
c.客户端使用:
1 | import java.util.Random; |