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

网络推广方案下拉管家xiala11seo技术教程在线咨询

网络推广方案下拉管家xiala11,seo技术教程在线咨询,市场调研与分析,做防水的网站有哪些原型设计模式 🚩什么是原型设计模式?🚩原型设计模式的特点🚩原型设计模式的结构🚩原型设计模式的优缺点🚩原型设计模式的Java实现🚩代码总结🚩总结 🚩什么是原型设计模式…

原型设计模式

  • 🚩什么是原型设计模式?
  • 🚩原型设计模式的特点
  • 🚩原型设计模式的结构
  • 🚩原型设计模式的优缺点
  • 🚩原型设计模式的Java实现
  • 🚩代码总结
  • 🚩总结

🚩什么是原型设计模式?

原型模式(Prototype Pattern)创建型设计模式,它用于 克隆对象,而不是重新创建它们

原型模式 中,我们创建一个对象作为原型,并允许其克隆多个副本,而不必重新初始化所有字段。

使用场景

  • 创建对象开销较大,但又需要 多个相似对象
  • 对象的构造过程复杂,希望通过 复制现有对象 来减少重复代码。
  • 需要 避免使用 new 关键字 来创建实例。

🚩原型设计模式的特点

  • 减少对象创建成本:克隆对象比 new 关键字创建对象更高效。
  • 避免重复初始化:对象已存在,直接克隆,不需要重复赋值。
  • 提供深拷贝和浅拷贝:可以根据需求实现不同级别的克隆。
  • 解耦对象构造:创建对象的逻辑独立于使用对象的逻辑。

🚩原型设计模式的结构

原型模式包含以下几个主要部分:

  • Prototype(原型接口):定义 clone() 方法,所有要克隆的类都要实现该接口。
  • ConcretePrototype(具体原型类):实现 Prototype 接口,并提供克隆对象的方法。
  • Client(客户端):通过调用 clone() 方法来创建新对象,而不是使用 new

🚩原型设计模式的优缺点

✅ 优点

  • 提高性能:避免了 new 操作,减少对象创建开销。
  • 简化对象创建:只需要 clone() 方法即可获得新对象。
  • 减少代码重复:省去了重新初始化对象的代码逻辑。

❌ 缺点

  • 需要实现 clone() 方法:所有类都要 显式实现克隆逻辑,可能增加代码复杂度。
  • 深拷贝和浅拷贝问题
    • 浅拷贝:仅复制对象本身,不复制其内部引用对象。
    • 深拷贝:需要手动实现内部对象的克隆逻辑,可能增加代码复杂度。

🚩原型设计模式的Java实现

代码地址:GitHub

  • 首先创建一个原型接口Prototype,接口定义一个clone()方法
/*** @author hanson* @description: 原型接口* @date 2025-03-23 22:30:55* @version: 1.0*/
public interface Prototype {public Object Clone();
}
  • 现在创建一个具体的产品Product去实现这个接口,重写clone方法
/*** @author hanson* @description: 体原型类* @date 2025-03-23 22:31:37* @version: 1.0*/
public class Product implements Prototype {private int id;private double price;public Product() {}public Product(int id, double price) {this.id = id;this.price = price;}public int getId() {return id;}public double getPrice() {return price;}@Overridepublic Object Clone() {Product object = new Product();object.id = this.id;object.price = this.price;return object;}
}
  • 创建一个客户端调用测试
/*** @author hanson* @description: 模拟客户端* @date 2025-03-23 22:33:22* @version: 1.0*/
public class PrototypePattern {public static void main(String[] args) {Product product1 = new Product(2022, 5.28);System.out.println(product1.getId() + " " + product1.getPrice());// Product product2 = new Product(2022, 5.28);Product product2 = (Product) product1.Clone();System.out.println(product2.getId() + " " + product2.getPrice());Product product3 = (Product) product1.Clone();System.out.println(product3.getId() + " " + product3.getPrice());}
}

📌 运行结果

在这里插入图片描述

🚩代码总结

  • Prototype(原型接口) 定义 Clone() 方法,所有要克隆的类都要实现该接口。
  • Product(具体原型类) 实现 Prototype 接口,并在 Clone() 方法中复制对象属性。
  • Main(客户端) 通过 Clone() 方法克隆多个 Product 实例,而不是使用 new 关键字创建对象。

🚩总结

  • 原型模式(Prototype Pattern) 适用于 创建成本高构造逻辑复杂 的对象。
  • 通过 clone() 方法复制对象,避免 new 关键字的高成本操作。
  • 在 Java 中,可以使用 Cloneable 接口和 Object.clone() 方法 简化克隆操作
  • 在实现深拷贝时,需要 手动克隆内部对象,以避免浅拷贝带来的问题。

✅ 适用场景:

  • 需要 高效创建对象,避免 new 关键字带来的性能损耗。
  • 需要 重复创建相同类型的对象,但不希望每次都手动初始化。
  • 适用于 具有复杂状态的对象,希望通过复制来保留状态。

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

在这里插入图片描述

http://www.dtcms.com/a/412757.html

相关文章:

  • 房地产类的网站建设做网站数据需要的软件
  • ps设计素材网站哪里可以做公司网站
  • 咋做211校徽加网站网络维护年终个人工作总结
  • 龙岩网站定制深圳建设网站哪家好
  • 网站建设的描述开发公司和建筑公司同一法人
  • 做网站找哪个好冀州网站建设
  • 网站开发需求分析参考文献常见的网络营销方法及其效果
  • 品牌型网站建设哪里好教做视频的网站
  • Python字典转换为XML完全指南:从基础到高阶应用
  • 中文企业网站设计欣赏wordpress评论自动刷新
  • 高端响应式网站wordpress导航特效
  • 个人网站建设完整教程怎样做网站优化排名
  • 源码屋整站源码深圳高端平台
  • 亚马逊网站建设特点加盟餐饮的网站建设
  • system-view 概念、故障排错及题目
  • 百度网址大全网站大全上海建设局官方网站
  • 无锡市城乡和住房建设局网站招工网站58同城
  • 广告品牌设计公司新手怎么做网站优化
  • 做搞机网站迪奥官网网站做的好吗
  • 迁安市住房和城乡建设局网站wordpress个性化
  • 买网站需要多少钱智控系统
  • 找事情做的网站中国建设银行网站缺点
  • 深圳北斗部标平台网站建设温州高端网站建设公司哪家好
  • 网站查询域名郑州网络
  • 网站的c4d动画是怎么做的python 网站开发怎么部署
  • 有趣的网站名方林装饰公司电话
  • 上线倒计时单页网站模板网站建设有免费的吗
  • 阿里云网站建设模板wordpress 写博客插件
  • 网站设计前景河北省住房和城乡建设厅网站官网
  • 网站建设都会用到哪些建站工具微信小程序开发视频完整教程