前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >设计模式创造性:原型模式(PrototypePattern)

设计模式创造性:原型模式(PrototypePattern)

作者头像
码农架构
发布2021-01-12 11:58:13
2260
发布2021-01-12 11:58:13
举报
文章被收录于专栏:码农架构码农架构

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

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

结构图

角色与理解

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

深拷贝与浅拷贝

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

核心代码

  • 抽象原型类
  • 被复制的对象与具体原型类的结合体
  • 客户端

- END -

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档