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

潍坊网站建设选聚搜网络好百度移动端排名

潍坊网站建设选聚搜网络好,百度移动端排名,品牌网站建设策划,东莞企业建站平台原型模式指通过调用原型实例的Clone方法或其他手段来创建对象。 原型模式属于创建型设计模式,它以当前对象为原型(蓝本)来创建另一个新的对象,而无须知道创建的细节。原型模式在Java中通常使用Clone技术实现,在JavaSc…

原型模式指通过调用原型实例的Clone方法或其他手段来创建对象。

原型模式属于创建型设计模式,它以当前对象为原型(蓝本)来创建另一个新的对象,而无须知道创建的细节。原型模式在Java中通常使用Clone技术实现,在JavaScript中通常使用对象的原型属性实现。

原型模式的Java实现很简单,只需原型类实现Cloneable接口并覆写clone方法即可。Java中的复制分为浅复制和深复制。

  • 浅复制:Java中的浅复制是通过实现Cloneable接口并覆写其Clone方法实现的。在浅复制的过程中,对象的基本数据类型的变量值会重新被复制和创建,而引用数据类型仍指向原对象的引用。也就是说,浅复制不复制对象的引用类型数据。
    package cn.jaa.prototype_pattern;/*** @Author: Jaa* @Description: 浅复制* @Date 2023/11/28 22:25*/
    public class Computer implements Cloneable {private String cpu;private String memory;private String disk;public Computer(String cpu, String memory, String disk) {this.cpu = cpu;this.memory = memory;this.disk = disk;}@Overrideprotected Object clone() { // 浅复制try {return (Computer) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}}@Overridepublic String toString() {return "Computer{" +"cpu='" + cpu + '\'' +", memory='" + memory + '\'' +", disk='" + disk + '\'' +'}';}
    }
    
  • 深复制:在深复制的过程中,不论是基本数据类型还是引用数据类型,都会被重新复制和创建。简而言之,深复制彻底复制了对象的数据(包括基本数据类型和引用数据类型),浅复制的复制却并不彻底(忽略了引用数据类型)。
    package cn.jaa.prototype_pattern;/*** @Author: Jaa* @Description: 深复制* @Date 2023/11/28 22:33*/
    public class ComputerDetail implements Cloneable {private String cpu;private String memory;private Disk disk;public ComputerDetail(String cpu, String memory, Disk disk) {this.cpu = cpu;this.memory = memory;this.disk = disk;}@Overrideprotected Object clone() { // 深复制try {ComputerDetail computerDetail = (ComputerDetail) super.clone();computerDetail.disk = (Disk) this.disk.clone(); // 引用对象深复制return computerDetail;} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}}@Overridepublic String toString() {return "ComputerDetail{" +"cpu='" + cpu + '\'' +", memory='" + memory + '\'' +", disk=" + disk +'}';}
    }
    package cn.jaa.prototype_pattern;/*** @Author: Jaa* @Description:* @Date 2023/11/28 22:34*/
    public class Disk implements Cloneable {private String ssd;private String hhd;public Disk(String ssd, String hhd) {this.ssd = ssd;this.hhd = hhd;}@Overrideprotected Object clone() { // 应用对象深复制try {return (Disk) super.clone();} catch (CloneNotSupportedException e) {e.printStackTrace();return null;}}@Overridepublic String toString() {return "Disk{" +"ssd='" + ssd + '\'' +", hhd='" + hhd + '\'' +'}';}
    }
    

    浅复制、深复制测试:

    package cn.jaa.prototype_pattern;import lombok.extern.slf4j.Slf4j;/*** @Author: Jaa* @Description: simple and deep clone test* @Date 2023/11/28 22:41*/
    @Slf4j
    public class PrototypeDemoTest {public static void main(String[] args) {// 浅复制Computer computer = new Computer("16core", "16G", "1TB");log.info("before simple clone: " + computer.toString());Computer computerClone = (Computer) computer.clone();log.info("after simple clone: " + computerClone.toString());// 深复制Disk disk = new Disk("256G", "1TB");ComputerDetail computerDetail = new ComputerDetail("16core", "16G", disk);log.info("before deep clone: " + computerDetail.toString());ComputerDetail computerDetailClone = (ComputerDetail) computerDetail.clone();log.info("after deep clone: " + computerDetailClone.toString());}
    }

    运行结果:

http://www.hkea.cn/news/156616/

相关文章:

  • 如何将网站让百度收录网店培训班
  • wordpress旧版页面编辑界面百度seo推广计划类型包括
  • 网站建设茶店网网站换友链平台
  • 珠海建设工程信息网站网络营销百度百科
  • 帮别人做网站推广犯法吗关键词排名网站
  • 建设通网站是政府的么高端网站定制设计
  • 玉溪做网站的公司夸克搜索网页版
  • wordpress导航主题haowseo挂机赚钱
  • 广州做家教的网站深圳网络推广招聘
  • 锐捷网络公司排名seo技术介绍
  • 新圩做网站公司拼多多代运营一般多少钱
  • 免费网站可以做cpa?短视频营销的优势
  • b2b外贸营销型网站如何做电商赚钱
  • 建设无障碍网站seo分析报告怎么写
  • 电子商务网站开发进什么科目模板自助建站
  • 威海市住房和城乡建设局官方网站北京seo营销公司
  • 开网页卡优化关键词排名工具
  • wordpress右侧文章归档东莞公司seo优化
  • 个人网站建设需求说明书免费外链生成器
  • 湖南网站建设的公司排名网页制作网站制作
  • 公司网页网站建设 ppt模板app开发公司排行榜
  • 网站开发yuanmus联合早报 即时消息
  • 为什么只有中国人怕疫情seo 页面
  • 网站开发总结报告十大门户网站
  • 临淄信息港发布信息临沂seo建站
  • 门户网站系统介绍企业推广哪个平台好
  • 免费网站建站排行榜网站策划报告
  • 网站设计的评估最近发生的热点新闻
  • 设建网站广告投放渠道
  • 日ip5000的网站怎么做如何提高网站在搜索引擎中的排名