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

目录

定义

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

核心思想

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

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

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

实现

角色

角色 本例对应 职责
抽象原型 Prototype Shape 声明 clone() 接口
具体原型 ConcretePrototype Circle、Rectangle 实现 clone(),通过拷贝构造复制自身
原型管理器 Registry(可选) ShapeRegistry 按名字持有母本,对外只发放克隆
客户 Client Canvas 持有克隆出来的对象
相关推荐
syagain_zsx2 小时前
protobuf 实战:从 .proto 到 C++ 序列化的完整链路
c++·学习·程序人生·谷歌·protobuf
welfare9622 小时前
新号别搞:C++_list
开发语言·c++
xiaoye-duck3 小时前
《C++ 项目:手写大模型接入 SDK》云端 API 调用基础与 Apifox 调试实战
网络·c++·语言模型
坤坤子吖3 小时前
Linux 线程同步与互斥——条件变量与线程同步
linux·开发语言·c++·笔记·学习
杜 硕3 小时前
从零开始的C++生活——第二讲——03
c++·生活
布莱克6054 小时前
QtWidgets 与 QML:两大 UI 开发框架的全面对比
开发语言·c++·qt·ui·架构
hetao17338374 小时前
2026-10-20 hetao1733837 的刷题记录
c++·算法
geovindu4 小时前
rust: Template Method Pattern
开发语言·后端·设计模式·rust·行为模式·模板方法模
x10n95 小时前
微软 VC++ 运行库合集VCRedistPack
开发语言·c++·microsoft·vc++运行库·dll报错