0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

设计模式创造性:原型模式

冬至子 来源:码农架构 作者:小智 2023-06-09 15:25 次阅读

原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。

结构图

图片

角色与理解

  • 原型模式共有以下几种角色:
  • Prototype(抽象原型类)定义clone方法的接口,类型为接口、抽象类或者具体的类,是所有具体原型类的父类
  • ConcretePrototype(具体原型类)实现clone方法的实现了,可以为多个类,提供不同的clone方式
  • Client(客户类)让一个原型对象复制新的对象
  • 原型方法的核心是如何实现clone方法,不同的clone方法最终的效果也是不一样的

深拷贝与浅拷贝

  • 浅拷贝(ShallowClone):当对象被复制时,只复制对象本身与值类型的成员变量,引用类型的成员变量没有被复制
  • 深拷贝(DeepClone):当对象被复制时,对象本身、值类型成员变量、引用类型成员变量都会被复制,原型对象与复制对象完全独立

核心代码

  • 抽象原型类

图片

  • 被复制的对象与具体原型类的结合体

图片

  • 客户端

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3750

    浏览量

    64208
  • Cyclone
    +关注

    关注

    0

    文章

    54

    浏览量

    30063
收藏 人收藏

    评论

    相关推荐

    [讨论]针对发明专利创造性无效的部分答复

    针对发明专利创造性无效的部分答复 专利纠纷 2010-04-21 08:54:02 阅读11 评论1 字号:大中小     
    发表于 04-22 10:52

    喜欢用ERP新技术的人能发挥管理创造性思维

    喜欢用ERP新技术的人能发挥管理创造性思维我们知道“兴趣是最好的老师”,这是一句比较经典的话,那么我想表达的是如果某人对自己所在的领域感兴趣,只要有长期坚持下去的信念,一般会激发他的创造性思维,这是
    发表于 07-29 10:09

    喜欢用ERP新技术的人能发挥管理创造性思维

    喜欢用ERP新技术的人能发挥管理创造性思维我们知道“兴趣是最好的老师”,这是一句比较经典的话,那么我想表达的是如果某人对自己所在的领域感兴趣,只要有长期坚持下去的信念,一般会激发他的创造性思维,这是
    发表于 08-09 10:11

    请问如何利用创造性补偿实现小型放大器驱动200 mW负载?

    利用创造性补偿实现小型放大器驱动200 mW负载
    发表于 04-06 06:44

    McDSP Futzbox 创造性的使用演示

    在这段视频中,我们将向您展示一些创造性的方法,在设计小军鼓声音时,如何利用Futzbox的功能和参数来发挥您的优势! 我们还谈到了Futzbox的模式选择器在插件的声音中发挥的作用。典型的后期制作
    发表于 07-25 08:09

    什么是菊花链模式型模式

    什么是菊花链模式型模式 菊花链模式   菊花链模式是简化的级联模式,主要的优点是提供集中管理的扩展端口,对于
    发表于 12-05 09:00 8482次阅读

    电子工程师结合创造性与习惯

    电子工程师结合创造性与习惯 人们可能会对电子产品的开发与设计方法坚持某种不变的观念,甚至对解决不同问题所采用的器件这样的小事都有某种思维定势,这是可
    发表于 12-16 09:19 2025次阅读

    游戏开发的三十个创造性词汇

    游戏开发者的三十个创造性词汇
    的头像 发表于 05-31 09:08 1580次阅读

    设计模式之结构型模式

    结构型模式一、适配器模式(一)定义:适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独
    发表于 11-06 17:51 1次下载
    设计<b class='flag-5'>模式</b>之结构<b class='flag-5'>型模式</b>

    设计模式最佳实践探索—策略模式

    根据不同的应用场景与意图,设计模式主要分为创建型模式、结构型模式和行为型模式三类。本文主要探索行为型模式中的策略
    的头像 发表于 10-31 14:24 903次阅读

    嵌入式 C 语言之原型模式应用

    原型模式(Prototype Pattern),是属于创建型模式的一种。原型模式主要是使用了原型对象实例,来指定被创建对象的种类,并且通过拷贝原型
    发表于 01-12 11:14 283次阅读

    用一个实例说明原型模式的使用方法

    原型模式是指将类设计成可复制(克隆)类型,继承Cloneable类,在调用时就可以直接通过clone()方法克隆已有对象生成新的对象。
    的头像 发表于 06-01 14:18 608次阅读
    用一个实例说明<b class='flag-5'>原型模式</b>的使用方法

    设计模式结构:代理模式

    在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式
    的头像 发表于 06-09 15:27 800次阅读
    设计<b class='flag-5'>模式</b>结构<b class='flag-5'>性</b>:代理<b class='flag-5'>模式</b>

    设计模式创造性:建造者模式

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
    的头像 发表于 06-09 16:25 699次阅读
    设计<b class='flag-5'>模式</b><b class='flag-5'>创造性</b>:建造者<b class='flag-5'>模式</b>

    各类设计模式及实现

    。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。 一、设计模式的分类 总体来说设计模式分为三大类 创建型模式,共五种
    的头像 发表于 11-11 11:45 690次阅读
    各类设计<b class='flag-5'>模式</b>及实现