当前位置: 首页 > wzjs >正文

那些网站是做金融行业建筑设计软件公司

那些网站是做金融行业,建筑设计软件公司,福田公司投诉电话,宁波模板网页制作JAVA设计模式——(十二)原型模式(Prototype Pattern) 介绍理解实现Email类测试 应用 介绍 用原型实例指定创建对象的种类,并且通过复制原型已有的对象用于创建新的对象。 理解 原型实例便是我们需要复制的类的实例&…

JAVA设计模式——(十二)原型模式(Prototype Pattern)

  • 介绍
  • 理解
  • 实现
    • Email类
    • 测试
  • 应用

介绍

用原型实例指定创建对象的种类,并且通过复制原型已有的对象用于创建新的对象

理解

原型实例便是我们需要复制的类的实例,原型说的是可以被复制的那个对象。这是一种构建实例的方式,用于对对象进行复制,而形成一个新的实例。

我们知道Obejct对象的clone()方法可以对对象进行克隆,但是clone()方法是protected类型的,protected类型的访问权限是:同一个类、同一个包、不同包的子类,而不允许不包的非子类访问。实际上,所有的类都会潜在的继承Object类,所以均是Object的子类,那么在所有类的内部均可以直接调用clone()方法,或者重写该方法,让其支持在其他类中调用。

但是,clone()方法并不能执行成功,而是会报出java.lang.CloneNotSupportedException。其实在clone()方法的源码中解释了这个原因。

如果对象的类不支持 Cloneable 接口。重写 clone 方法的子类也会抛出此异常,表示实例无法被克隆。

所以需要实现Cloneable接口。

实现步骤:

  1. 创建原型
  2. 实现Cloneable接口
  3. 重写clone()方法

实现

以发邮件作为例子,通原型模式,减少邮件实例的创建时间。

Email类

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/5/6 10:49* @Contact 643947568@qq.com*/
public class Email implements Cloneable{private String receiver;private String sender;private String subject;private String content;public Email(String subject, String content) {this.content = content;this.subject = subject;}//重要-------------------!!!------------@Overridepublic Email clone() {try {Email clone = (Email) super.clone();// TODO: copy mutable state here, so the clone can't change the internals of the originalreturn clone;} catch (CloneNotSupportedException e) {throw new AssertionError();}}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getReceiver() {return receiver;}public void setReceiver(String receiver) {this.receiver = receiver;}public String getSender() {return sender;}public void setSender(String sender) {this.sender = sender;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}
}

测试

package cn.sh.designepattern;/*** @Author song* @Version 0.0.1* @Date 2025/5/6 10:42* @Contact 643947568@qq.com*/
public class Main {public static void main(String[] args) throws CloneNotSupportedException {Email email = new Email("活动通知", "会员88折,截止时间5月1日");Email clone = email.clone();System.out.println(email.hashCode());System.out.println(clone.hashCode());for (int i = 0; i < 10; i++) {Email clone1 = email.clone();clone1.setSender("test");clone1.setReceiver("接收方:" + i);System.out.println("发送邮件" + clone1);}}
}

效果

990368553
1096979270
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:0', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:1', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:2', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:3', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:4', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:5', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:6', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:7', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:8', sender='test', subject='活动通知'}
发送邮件Email{content='会员88折,截止时间5月1日', receiver='接收方:9', sender='test', subject='活动通知'}

应用

原型模式可能很容易的创建一个对象的许多个实例,在实际运用中,对于需要new出很多个相同类型对象的情况,比较实用。


文章转载自:

http://mAvm53h3.gjzwj.cn
http://X3mDJzzm.gjzwj.cn
http://cg5Lk7dL.gjzwj.cn
http://C5RivQlw.gjzwj.cn
http://TOcKAN3a.gjzwj.cn
http://uE7cRYqL.gjzwj.cn
http://JswCyi5z.gjzwj.cn
http://wOsxlD64.gjzwj.cn
http://GPUL6UuL.gjzwj.cn
http://Rhp6TgBG.gjzwj.cn
http://msOIvqgc.gjzwj.cn
http://eZjqxSGk.gjzwj.cn
http://g1whGoDk.gjzwj.cn
http://NRD4e5wT.gjzwj.cn
http://pj6vuGH0.gjzwj.cn
http://uK0iJ6jk.gjzwj.cn
http://kNHSmseH.gjzwj.cn
http://5NwGmDGs.gjzwj.cn
http://qG9lMaDC.gjzwj.cn
http://8nhgtM6g.gjzwj.cn
http://HszJL2Fe.gjzwj.cn
http://BxShHjFd.gjzwj.cn
http://w3zpOKrF.gjzwj.cn
http://DXPN3ZXh.gjzwj.cn
http://s5HvToq0.gjzwj.cn
http://mgutixkX.gjzwj.cn
http://o9R05FoY.gjzwj.cn
http://o0G1goy4.gjzwj.cn
http://fsbOy0Ng.gjzwj.cn
http://9fOV20v9.gjzwj.cn
http://www.dtcms.com/wzjs/725173.html

相关文章:

  • 建设公司需要网站吗网络公司经营范围包括劳务吗
  • 网站alexa排名北京网络seo经理
  • 设计经典网站微官网是网站吗
  • 企业网站 免费使用h5做的学习网站源码
  • 全景网站制作教程全网营销推广系统
  • 别人给我们做的网站如何关闭泉州企业网站制作哪家好
  • 健身所网站建设策划书什么是网络推广工作
  • 深圳罗湖区网站建设公众号开发合同
  • 外贸网站推广费用vs2012 做网站教程
  • asp 网站管理工具网站代理公司
  • 怎么做健康咨询网站wordpress激活插件
  • 免费ftp 网站东莞网站推广方式
  • 获取WordPress旺道网站优化
  • 网站建设评判标准网站建设录哪个科目
  • 济南建设工程交易中心网站建行网址
  • 网站程序找人做还是自己做wordpress 标签列表页
  • 建站系统哪个好网站开发中用什么安全性比性比较高
  • 做网站资质荣誉用的图片canva在线平面设计官网
  • 怎么查找网站后台asp网站 工具
  • 网站改版的seo注意事项佛山专业网站设计公司
  • 做网站好公司哪家好门户网站建设采购
  • 做网站是否用数据库wordpress文章标题颜色
  • 深圳 做网站 互联怎么联网访问自己做的网站
  • qq刷赞网站推广快速网站轮换图
  • 兰州网站建设尚美官方网站建设银行
  • 重庆网站建设哪家公司好网站和h5
  • 百度seo网站优化服务当地信息网站建设资质
  • 网站全站开发需要学什么有关网站开发的文献或论文
  • 制作网站公司推荐wordpress不能添加文章
  • thinkphp5 做网站聚名网