Prototype 原型/克隆
Prototype 原型/克隆
- Java自带克隆模式
- 一个对象的的属性已经确定,需要产生很多相同
- 首先实现标记型接口cloneable,重写Object中的clone方法
- 注意点是需要区分浅克隆和深克隆
- 浅克隆属性类不需要也继承cloneable并重写clone
public class Prototype {public static void main(String[] args) throws CloneNotSupportedException {Local local = new Local(22);Person person = new Person(18,local);Person person1 = person.clone();System.out.println(person1.local == person.local);person.local = new Local(33);System.out.println(person1.local.num);}}class Person implements Cloneable{int age;Local local;public Person(int age, Local local) {this.age = age;this.local = local;}@Overrideprotected Person clone() throws CloneNotSupportedException {Person person = (Person) super.clone();person.local = local.clone();return person;}}class Local implements Cloneable{int num;public Local(int num) {this.num = num;}@Overrideprotected Local clone() throws CloneNotSupportedException {Local local = (Local) super.clone();return local;}}
- 浅克隆属性类不需要也继承cloneable并重写clone
