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

凡科做网站不好今天的新闻 联播最新消息

凡科做网站不好,今天的新闻 联播最新消息,凡科小程序价格,抖音带运营团队有用吗如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象&a…

如果对象的创建成本比较大,而同一个类的不同对象之间差别不大(大部分字段都相同),在这种情况下,我们可以利用对已有对象(原型)进行复制(或者叫拷贝)的方式来创建新对象,以达到节省创建时间的目的。这种基于原型来创建对象的方式就叫作原型设计模式(Prototype Design Pattern),简称原型模式。

如果对象中的数据需要经过复杂的计算才能得到(比如排序、计算哈希值),或者需要从 RPC、网络、数据库、文件系统等非常慢速的 IO 中读取,这种情况下,我们就可以利用原型模式,从其他已有对象中直接拷贝得到,而不用每次在创建新对象的时候,都重复执行这些耗时的操作。

建造者模式的实现

说明

原型模式的核心是一个抽象原型类(Prototype),该类定义了克隆方法(clone),用于复制自身并创建新对象。具体的原型类(Concrete Prototype)继承自抽象原型类,并实现了克隆方法。

需要注意的是,在 Java 中使用原型模式进行对象克隆时,通常需要实现 Cloneable 接口,并重写 clone() 方法来实现深层克隆。否则,默认的 clone() 方法只会进行浅层克隆,即复制对象的引用而不是实际数据。如果对象包含引用类型的成员变量,则需要对这些成员变量也进行克隆操作,以保证克隆对象与原始对象之间的数据独立性。

编程示例

// 抽象原型类
public abstract class Prototype implements Cloneable {// 定义克隆方法public abstract Prototype clone();
}// 具体原型类A
public class ConcretePrototypeA extends Prototype {// 实现克隆方法@Overridepublic Prototype clone() {return new ConcretePrototypeA();}
}// 具体原型类B
public class ConcretePrototypeB extends Prototype {// 实现克隆方法@Overridepublic Prototype clone() {return new ConcretePrototypeB();}
}// 客户端
public class Client {public static void main(String[] args) {Prototype prototypeA = new ConcretePrototypeA();  // 创建原型对象APrototype cloneA = prototypeA.clone();  // 克隆原型对象APrototype prototypeB = new ConcretePrototypeB();  // 创建原型对象BPrototype cloneB = prototypeB.clone();  // 克隆原型对象B}
}

抽象原型类 Prototype 定义了克隆方法 clone(),具体原型类 ConcretePrototypeA 和 ConcretePrototypeB 分别继承自抽象原型类,并实现了克隆方法。客户端通过实例化具体原型类来创建原型对象,然后通过调用克隆方法 clone() 复制该对象并创建新的对象。

深度拷贝的另外一种实现方法:

public Object deepCopy(Object object) {ByteArrayOutputStream bo = new ByteArrayOutputStream();ObjectOutputStream oo = new ObjectOutputStream(bo);oo.writeObject(object);ByteArrayInputStream bi = new ByteArrayInputStream(bo.toByteArray());ObjectInputStream oi = new ObjectInputStream(bi);return oi.readObject();
}

以上内容基于GPT创建和整理。

参考

  • 设计模式之美-王争
http://www.ritt.cn/news/26426.html

相关文章:

  • 湖北餐饮网站建设宁德市古田县
  • 石家庄市城乡建设部网站品牌宣传活动策划方案
  • 宣城网站开发网络公司互联网营销师课程
  • mvc做的网站嘉兴seo计费管理
  • 做微网站那pc端显示啥crm系统
  • 烟台建设用地规划查询网站做一个网站要花多少钱
  • 竞拍网站建设东莞网络营销信息推荐
  • ai特效字体网站文案代写平台
  • wordpress建站需要写代码吗软文代发
  • 湘潭网站建设 在线磐石网络搜一搜百度
  • 沈阳搜索排名公司重庆网站seo诊断
  • 学校期末评语网站开发市场营销的八个理论
  • 黑客网站网址入口谷歌seo服务商
  • 网站怎么做直播间广告营销推广方案
  • 免费做淘宝客网站有哪些专业海外网站推广
  • 卓老师建站网站后台如何直接登陆友情链接代码
  • 建设网站宽度最好是多少钱友情链接代码美化
  • 广州可以做票务商城的网站公司杭州百度seo
  • 网站制作的服务机构淘宝店铺怎么免费推广
  • 美容美发网站建设方案zac博客seo
  • 做b2b网站的人windows永久禁止更新
  • 个人网站怎么自己备案营销背景包括哪些内容
  • 商丘做网站多少钱yandex搜索引擎
  • asp网站程序下载广州网站优化方式
  • 如何做网站 优帮云百度app官方下载安装到手机
  • 宝安网站建设公司关键词首页排名代做
  • 洛阳创智广场做网站制作网页的步骤
  • 免费做公司网站能在百度上搜索的到有产品怎么找销售渠道
  • 建设网站需要哪些元素网络服务提供者收集和使用个人信息应当符合的条件有
  • 做网站需要缴什么费用湖南网站seo找行者seo