设计模式-原型模式示例|当前看点
2023-05-05 10:27:26来源:腾讯云
(资料图片仅供参考)
演示原型模式的实现方法:
// 原型接口public interface Prototype { Prototype clone();}// 具体的学生类,实现原型接口并重写复制方法public class Student implements Prototype { private String name; private int age; public Student(String name, int age) { this.name = name; this.age = age; } 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; } // 实现 clone() 方法,返回一个新的学生对象并复制原有对象的属性 @Override public Prototype clone() { return new Student(name, age); }}// 客户端代码public class Client { public static void main(String[] args) { // 创建原型对象 Student stu1 = new Student("张三", 20); // 克隆新对象并修改属性 Student stu2 = (Student) stu1.clone(); stu2.setName("李四"); stu2.setAge(21); // 打印结果 System.out.println("stu1: " + stu1.getName() + ", " + stu1.getAge()); System.out.println("stu2: " + stu2.getName() + ", " + stu2.getAge()); }}
在这个示例代码中,我们定义了一个原型接口 Prototype 和一个具体的学生类 Student,该类实现了原型接口并重写了 clone() 方法。在客户端代码中,我们创建了一个原型对象 stu1,并通过克隆原型对象来生成一个新的学生对象 stu2,然后修改 stu2 对象的属性并打印结果。由于 stu1 和 stu2 对象是互相独立的,因此修改 stu2 的属性不会影响 stu1 对象的属性。
需要注意的是,在实现原型模式时,要确保克隆对象的深浅复制问题。在示例代码中,我们只需要对基本类型的成员变量进行复制,因此可以使用浅复制来实现 clone() 方法。但如果 Student 类中包含了非基本类型的成员变量,例如一个引用类型的属性 Address,那么就需要对这个属性进行深度克隆,否则复制出来的新对象和原有对象会共享这个引用类型的属性,可能会引发潜在的问题。
因此,在实现原型模式时,需要根据具体的场景选择适当的复制方法来确保克隆对象的正确性。如果对象比较简单,只包含基本类型的成员变量,可以使用浅复制来实现 clone() 方法;如果对象比较复杂,包含了多个引用类型的成员变量,就需要使用深复制来确保新对象和原有对象的属性是完全独立的。
相关新闻
- 设计模式-原型模式示例|当前看点
- 出入境旅游市场复苏加速 “五一”假期日均125.3万人次出入境 焦点
- 播报:长盈精密:5月4日融券卖出金额64.69万元,占当日流出金额的0.32%
- “长脖子”恐龙家族再添新属种
- 今日快看!楼房全部都拆除
- 重庆水务:5月4日融资买入560.42万元,融资融券余额8883.87万元
- 当前聚焦:山东省有多少个地级市城市_山东省有多少个地级市
- 立普妥怎么服用一天吃几粒_立普妥最佳服用时间
- 焦点资讯:8-28!曼联客战英超TOP9一胜难求,1平7负仅拿1分,场均丢3.5球
- 剩余4大联赛争冠形势:曼城少赛1场领先1分 德甲拜仁多特冲刺阶段_讯息
- 观热点:盗版win7_盗版win7黑屏解决办法
- 5月4日基金净值:中信证券臻选价值成长混合A最新净值1.1151,跌0.59% 环球即时看
- u盘的文件夹无法删除怎么办_文件夹无法删除怎么办
- 党员、公职人员酒驾,后果很严重→
- 大满镇扎实开展玉米制种亲本转基因检测工作-世界观速讯
- 早安,地球村|2.74亿人次!有你吗?
- 原腾讯QQ空间负责人,T13专家,黄希彤被爆近期被裁员,裁员原因令人唏嘘。。
- 天铁股份:与中铁一局集团新运工程有限公司签署《橡胶减振垫买卖合同》 全球观天下
- 新资讯:陵城区徽王庄镇:发展特色金银花产业 赋能乡村振兴
- 湘潭电化:截至2023年4月28日,公司股东人数为58061|全球新消息