世界即时:设计模式-原型模式示例
在这个示例代码中,我们定义了一个原型接口Prototype和一个具体的学生类Student,该类实现了原型接口并重写
(资料图片)
演示原型模式的实现方法:
// 原型接口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() 方法;如果对象比较复杂,包含了多个引用类型的成员变量,就需要使用深复制来确保新对象和原有对象的属性是完全独立的。
关键词:
[ 相关文章 ]
在这个示例代码中,我们定义了一个原型接口Prototype和一个具体的学生类Student,该类实现了原型接口并重写
非法处置进口的固体废物罪量刑标准:违反国家规定,将境外的固体废物进境倾倒、堆放、处置的,处五年以下有
1、king是秦奋的号。2、秦奋的老爸是招商银行和中信银行的董事长,所以他的身价并不比王思聪差。3、俗话说
前段时间有位老朋友找到我,说自己最近每天晚上都睡不踏实,天天做梦,一个接一个的,脑子里就像在放电影一
枞阳县气象台2023年05月04日23时05分发布强对流黄色预警信号。枞阳县钱桥镇、麒麟镇、义津镇、浮山镇、会宫
后经过十几轮增资、股改、股权转让等变动,2020年4月29日,“国产HPV疫苗第一股”万泰生物正式登陆上交所
1、打新打新,就是用资金参与新股申购,如果中签的话,就买到了即将上市的股票。2、网下的只有机构能申购,
4月23日至27日第133期广交会二期火热进行椒江外贸“大军”抢新登场一起来看看广交会二期展出的主要以与老百
上证报亚汇网讯(记者范子萌)上证报记者5月4日获悉,兴业银行股份有限公司2023年第一期绿色金融债券日前在
怎样申请劳动仲裁流程,个人申请劳动仲裁流程这个很多人还不知道,现在让我们一起来看看吧!1、你需到工商局
扬子晚报网5月4日讯(记者郭一鹏通讯员王晨)前不久凌晨时分,南京交警八大队连续接到两起骑电动自行车摔倒
1、保险业务分:实施的方式、保障的范围、保险政策、保障主体。2、保险按实施的方式不同进行分类自愿保险和
近日,大河报·豫视频记者从南阳老界岭景区了解到,2023年“五一”假期,老界岭接待游客人数同比2021年增长
佳民集团(08519)发布公告,根据对集团截至2023年3月31日止3个月(本期间
制图:俞建宇上市公司是实体经济的领头羊,也是厦门经济的重要一环,那么,资本市场的“厦门军团”去年表现
明天凌晨2点45分,那不勒斯将在客场对阵乌迪内斯,本场球队打平就能够夺冠。据科贝电台消息,那不勒斯已经
马斯克的星舰首飞,到底是成功了还是失败了?
NBA季后赛东部一组对决,76人客场以87比121不敌凯尔特人,双方总比分改写为1比1。此役,新科常规赛MVP恩比德复出
证券时报网讯,市场监管总局等十一部门联合印发《关于进一步加强医疗美容行业监管工作的指导意见》。《指导
证券时报e公司讯,南威软件(603636)在互动平台表示,公司已收到华润数科发来的国家市场监督管理总局向其出
[ 相关新闻 ]
Copyright 2015-2022 华北医院网 版权所有 备案号:粤ICP备18023326号-8 联系邮箱:855 729 8@qq.com