Prototype 对象创建型模式,采取复制原型对象的方法来创建对象的实例
特点: 1.由原型对象自身创建目标对象。 2.目标对象是原型对象的克隆。 3.根据对象克隆深度层次不同,有浅克隆与深度克隆
应用场景: 1.在创建对象的时候,不只是希望继承基类的基本结构,还希望继承原型对象的数据 2.希望对目标对象的修改不影响既有的原型对象(深度克隆) 3.隐藏克隆操作的细节
public class Person implements Cloneable{ private String name; private int age; private String sex; private List<String> friend;//浅克隆只会把引用复制 public List<String> getFriend() { return friend; } public void setFriend(List<String> friend) { this.friend = friend; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Person clone(){ try { Person person =(Person)super.clone();//深度克隆实现 List<String> friend = new ArrayList<>(person.getFriend());//引用多实例化一份 person.setFriend(friend); return person; } catch (CloneNotSupportedException e) { e.printStackTrace(); return null; } } }