当前位置: 首页 > news >正文

下载网站源文件南通优化网站价格

下载网站源文件,南通优化网站价格,网络推广哪个平台效果最好,服装网站建设策划方案上一节#xff1a;建造者模式#xff08;Builder Pattern#xff09;C 文章目录 0.理论1.原型模式的核心组成#xff1a;2.实现方法3.什么时候使用 1.实践步骤 1: 定义怪物原型步骤 2: 实现具体怪物原型步骤 3: 使用原型创建怪物 0.理论 原型模式#xff08;Prototype P…上一节建造者模式Builder PatternC 文章目录 0.理论1.原型模式的核心组成2.实现方法3.什么时候使用 1.实践步骤 1: 定义怪物原型步骤 2: 实现具体怪物原型步骤 3: 使用原型创建怪物 0.理论 原型模式Prototype Pattern是一种创建型设计模式其思想是基于一个原型实例创建对象的副本从而避免新实例创建时的标准方式如使用new关键字。在需要创建的对象与原有对象类似或者创建过程较为复杂时使用原型模式可以更高效地复制对象。 1.原型模式的核心组成 原型Prototype一个接口或抽象类定义了复制克隆自身的方法。具体原型Concrete Prototype实现原型接口的类的实例这个实现包括如何克隆自身的具体操作。客户Client使用原型实例创建新对象的类。 2.实现方法 浅克隆Shallow Clone复制对象时仅复制对象本身和对象中的原始类型的字段值而不复制对象引用指向的对象。浅克隆可以快速复制但不包括对象内部的引用对象。深克隆Deep Clone复制对象时除了对象本身和原始类型的字段值外还递归地复制对象中的所有引用对象。深克隆使得副本与原始对象在结构上完全独立修改副本不会影响原始对象。 3.什么时候使用 当直接创建一个对象的成本较高或复杂时使用原型模式可以简化对象的创建过程。当需要重复地创建相似对象时可以利用已有对象进行克隆减少创建对象的开销。当需要实现对象的撤销和恢复功能时通过保存对象的克隆副本来实现。 1.实践 假设我们正在开发一个游戏其中包含大量的怪物。这些怪物分为几种类型比如“地精”、“龙”等。每种怪物都有自己的属性如生命值、攻击力等但同种类型的怪物在初始状态下这些属性是相同的。在游戏中我们需要频繁地创建同类型的怪物实例。为了提高性能和简化创建过程我们可以使用原型模式来实现怪物的创建。 步骤 1: 定义怪物原型 首先定义一个怪物原型基类其中包含一个虚拟的克隆方法 #include iostream// 怪物原型基类 class Monster { public:virtual ~Monster() {}virtual Monster* clone() const 0;virtual void attack() const 0; }; 步骤 2: 实现具体怪物原型 然后为每种怪物类型实现具体的原型类 // 地精怪物 class Goblin : public Monster { public:Goblin* clone() const override {return new Goblin(*this);}void attack() const override {std::cout Goblin attacks! Damage: 10 std::endl;} };// 龙怪物 class Dragon : public Monster { public:Dragon* clone() const override {return new Dragon(*this);}void attack() const override {std::cout Dragon breathes fire! Damage: 100 std::endl;} }; 步骤 3: 使用原型创建怪物 最后在游戏逻辑中我们可以通过克隆原型来创建新的怪物实例 int main() {// 创建原型Goblin* goblinPrototype new Goblin();Dragon* dragonPrototype new Dragon();// 克隆新怪物Monster* goblin1 goblinPrototype-clone();Monster* dragon1 dragonPrototype-clone();// 使用怪物实例进行攻击演示goblin1-attack();dragon1-attack();// 清理资源delete goblinPrototype;delete dragonPrototype;delete goblin1;delete dragon1;return 0; }原型模式可以在不知道对象具体类型的情况下克隆对象并减少子类的构造。也可以可以避免构造函数的约束因为对象的复制通常是通过某种复制方法实现的。
http://www.zqtcl.cn/news/172499/

相关文章:

  • 开发区网站建设公司wordpress中文官网
  • 购物网站项目经验搭建网站流程
  • 网站建设企业蛋糕怎么做网站里导出没有水印的图
  • 享设计网做兼职设计师怎么样何鹏seo
  • 淘宝联盟网站推广位怎么做网站建设小知识
  • 徐州有办网站的地方吗企业做网站多少钱
  • 地铁公司招聘信息网站通江县网站建设
  • 家具网站 模板上海虹口建设局官方网站
  • 网站建站建设哪家好wordpress全站静态
  • 旅游网站建设策划seo顾问多少钱
  • 个人网站注册平台要多少钱彩票网站开发 违法
  • 贵州城乡住房和建设厅网站易企秀网站开发语言
  • 返利网站做鹊桥推广免费的舆情网站入口在哪
  • 网站商城怎么做wordpress图片采集插件
  • 做美团网站代码swoole+wordpress
  • 百度免费资源网站搭建发卡网站要多少钱
  • ip网站怎么做酷家乐手机版
  • cnzz统计代码如何添加到网站上去照片网站源码
  • 我的世界电影怎么做的视频网站网页布局实训心得体会
  • 网站建设公司内部情况凡客诚品陈年
  • 浙江建设职业技术学院迎新网站商务网站建设体会
  • 做网站的目的与意义做家教去什么网站
  • 相城网站建设为什么网站建设价格不一
  • 网站icp备案手续我做的网站平台百度搜不到
  • 本溪网站设计公司ps转页面wordpress插件
  • 怎么做短链接网站搜索引擎优化的各种方法
  • 自己做网站怎么挣钱微网站建站系统源码
  • 湖北省网站备案最快几天网站建设存在的具体问题
  • 网站建设算固定资产吗做网站都需要什么软件
  • ui设计培训是什么seo外链网站源码