【JAVA设计模式】5.原型模式
原型模式是个较少被提到的设计模式,其本质就是提供了clone方法的接口,其实现需要满足以下几点:
1. 对任何的对象x,都有x.clone() !=x,即克隆对象与原对象不是同一个对象。 2. 对任何的对象x,都有x.clone().getClass()==x.getClass(),即克隆对象与原对象的类型一样。 3. 如果对象x的equals()方法定义恰当,那么x.clone().equals(x)应该成立。
简单对象的克隆可以通过实现Cloneable接口,并在clone方法中调用super.clone()实现。
JAVA默认的clone方法是浅拷贝,新对象中的属性是旧对象的引用,所以可以自己重写clone()方法实现深拷贝。
UML图:
JAVA代码:https://github.com/zhuaizhuaixi/design-pattern/tree/master/src/designpattern/creation/prototype