🗒️Day32【概念解析】原型模式
00 分钟
2023-10-23
2023-10-27
type
status
date
slug
summary
tags
category
icon
password

整理定义

中文名称:原型模式
英文名称:prototype pattern
出处
定义
中国大百科全书
使用一个原型来刻画要创建的类型,通过复制这个原型得到新的类的一种设计模式
设计模式
原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。
百度百科
用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
维基百科
原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。 原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。

复述展开

What is prototype pattern

💡
原型模式作为一种创建型对象的设计模式,它主要通过原型类提供的克隆接口来创建与原型一致的对象。不需要知道原型的类也可以创建一个一模一样的对象。

原型模式结构

notion image
  1. 原型 (Prototype) 接口将对克隆方法进行声明。 在绝大多数情况下, 其中只会有一个名为 clone克隆的方法。
  1. 具体原型 (Concrete Prototype) 类将实现克隆方法。 除了将原始对象的数据复制到克隆体中之外, 该方法有时还需处理克隆过程中的极端情况, 例如克隆关联对象和梳理递归依赖等等。
  1. 客户端 (Client) 可以复制实现了原型接口的任何对象。

理解体会

原型模式的优缺点:

优点
  1. 性能优良:当对象创建成本较高时,克隆可以显著提高性能,因为它通常比实例化一个全新对象更快。
  1. 简化对象创建:如果对象的创建过程复杂或者需要很多步骤,使用原型模式可以简化这个过程。
  1. 动态添加或删除对象:原型模式允许在运行时动态地添加或删除对象。
缺点
  1. 克隆复杂对象可能很复杂:如果对象有循环引用或者复杂的构造逻辑,克隆可能会变得困难。
  1. 克隆可能导致数据一致性问题:如果对象的某些属性是引用类型,那么浅克隆可能会导致数据一致性问题。

原型模式的应用场景包括:

  1. 当一个系统需要独立于其产品的创建、组合和表示时,可以使用原型模式。
  1. 当要实例化的类在运行时刻被指定时,可以使用原型模式。
  1. 当需要避免创建一个与产品类层次平行的工厂类层次时,可以使用原型模式。
  1. 当类的实例只能有几个不同状态组合中的一种时,通过克隆原型对象得到新实例可能比手工实例化更方便。

具体到语言

  1. Python 的 Cloneable  (克隆) 组件就是一个典型的原型模式。
  1. Java 的 Cloneable  (可克隆) 接口也是原型模式。
任何类都可通过实现该接口来实现可被克隆的性质。
java.lang.Object#clone() (类必须实现 java.lang.Cloneable 接口)
 
📌
快速跳转链接
【概念解析】启动
【概念解析】Day 1 - 10
【概念解析】Day 11 - 20
【概念解析】Day 21 - 30
【概念解析】Day 31 - 40
【概念解析】Day 41 - 50
【概念解析】Day 51 - 60
【概念解析】Day 61 - 70
【概念解析】Day 71 - 80
【概念解析】Day 81 - 90
 
上一篇
Day33【概念解析】桥接模式
下一篇
Day31【概念解析】单例模式

评论
Loading...