创建型模式—原型(Prototype)模式

目录

定义

用原型实例指定创建对象的种类,并且通过拷贝这些原型来创建新对象

核心思想

工厂模式回答的问题是"谁来造",原型模式换了一个视角:"照着现成的样子造"

  • 工厂方法:每个具体产品配一个创建者子类,产品种类=类的数量;
  • 原型模式:一个配置好的对象本身就是模板,新产品=clone母本再微调。种类可以运行期动态删增,不需要新配置,新增任何类

C++中落地的手段是通过一个虚成员函数(如clone)来构造对象,调用方只握有基类指针,却能得到和动态类型完全一致的拷贝

实现

角色

角色 本例对应 职责
抽象原型 Prototype Shape 声明 clone() 接口
具体原型 ConcretePrototype Circle、Rectangle 实现 clone(),通过拷贝构造复制自身
原型管理器 Registry(可选) ShapeRegistry 按名字持有母本,对外只发放克隆
客户 Client Canvas 持有克隆出来的对象
相关推荐
是2的10次方啊16 小时前
设计模式与生活⑰:空腹体检,单子领着人走
设计模式
apcipot_rain18 小时前
C++转Java日记(03)
java·开发语言·c++
布莱克60518 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
xys_67818 小时前
深挖C++:类和对象(中)
开发语言·c++
D e re k ZH21 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
xiaoye-duck1 天前
《C++ 项目:手写大模型接入 SDK》Ollama接口设计(上):初始化、全量响应实现和测试
开发语言·网络·c++·语言模型
zaizai10071 天前
【Effective Modern C++】学习第一章
c++
Fruiticecake1 天前
C 程序员速通现代 C++(一):lambda、std::function、移动语义与智能指针
c语言·c++
青少儿编程课堂1 天前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:中缀表达式求值解析
c++·python·算法·bfs·信息学竞赛
坤坤子吖1 天前
Linux网络编程:TCP服务器的多进程与多线程实现
linux·服务器·开发语言·网络·c++·笔记·学习