您的位置:首页 > 财经 > 产业 > 原型模式--深复制/浅复制

原型模式--深复制/浅复制

2024/11/19 3:48:49 来源:https://blog.csdn.net/qq_40280043/article/details/139646358  浏览:    关键词:原型模式--深复制/浅复制

  原型模式用于克隆复杂对象,由于new一个实例对象会消耗大部分时间,所以原型模式可以节约大量时间

 1 public class Sheep implements Cloneable{2     private String name;3     private Date birth;4     public Sheep(String name, Date birth) {5         this.name = name;6         this.birth = birth;7     }8     @Override9     protected Object clone(){
10         Sheep obj = null;
11         try {
12             obj = (Sheep) super.clone();
13             //深复制
14 //            obj.birth = (Date) this.birth.clone();
15         } catch (CloneNotSupportedException e) {
16             e.printStackTrace();
17         }
18         return obj;
19     }
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     public Date getBirth() {
27         return birth;
28     }
29     public void setBirth(Date birth) {
30         this.birth = birth;
31     }
32     
33 }
import java.util.Date;public class Client {public static void main(String[] args) {Date date = new Date(1515529952L);Sheep s1 = new Sheep("s1",date);Sheep s2 = (Sheep) s1.clone();System.out.println(s1.getBirth());System.out.println(s2.getBirth());date.setTime(15L);//修改后System.out.println(s1.getBirth());System.out.println(s2.getBirth());}
}
 1 浅复制2     Sun Jan 18 20:58:49 CST 19703     Sun Jan 18 20:58:49 CST 19704     //修改后5     Thu Jan 01 08:00:00 CST 19706     Thu Jan 01 08:00:00 CST 19707 深复制8     Sun Jan 18 20:58:49 CST 19709     Sun Jan 18 20:58:49 CST 1970
10     修改后
11     Thu Jan 01 08:00:00 CST 1970  //只对s1修改
12     Sun Jan 18 20:58:49 CST 1970

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com