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

中国企业网站设计案例宝安网页

中国企业网站设计案例,宝安网页,网站分类表,凡科网站 怎么开支付注意#xff1a;复现代码时#xff0c;确保 VS2022 使用 C17/20 标准以支持现代特性。 克隆对象的效率革命 1. 模式定义与用途​ ​ 核心思想​ ​原型模式#xff1a;通过复制现有对象​#xff08;原型#xff09;来创建新对象#xff0c;而非通过new构造。​关键用…注意复现代码时确保 VS2022 使用 C17/20 标准以支持现代特性。 克隆对象的效率革命 1. 模式定义与用途​ ​ 核心思想​ ​原型模式通过复制现有对象​原型来创建新对象而非通过new构造。​关键用途 1.减少初始化开销适用于创建成本高的对象如数据库连接。 2.​动态配置对象运行时通过克隆生成预设配置的实例。 ​ 经典场景​ 游戏开发批量生成相同属性的敌人或道具。文档编辑复制带格式的文本段落。 2. 模式结构解析​ UML类图 --------------------- --------------------- | Prototype | | Client | --------------------- --------------------- | clone(): Prototype|-------| - prototype: Prototype --------------------- --------------------- ^ | --------------------- | ConcretePrototype | --------------------- | clone() | --------------------- 角色说明​ Prototype抽象接口声明克隆方法 clone()。ConcretePrototype具体原型类实现克隆逻辑。Client通过调用 clone() 创建新对象。 3. 简单示例基础克隆实现 #include memory // 抽象原型接口 class Enemy { public: virtual ~Enemy() default; virtual std::unique_ptrEnemy clone() const 0; virtual void attack() const 0; }; // 具体原型骷髅战士 class SkeletonWarrior : public Enemy { public: std::unique_ptrEnemy clone() const override { return std::make_uniqueSkeletonWarrior(*this); // 调用拷贝构造函数 } void attack() const override { std::cout 骷髅战士挥舞骨刀\n; } }; // 使用克隆 auto original std::make_uniqueSkeletonWarrior(); auto clone original-clone(); clone-attack(); // 输出骷髅战士挥舞骨刀 4. 完整代码原型管理器与深拷贝优化 场景游戏敌人原型注册与批量生成 #include iostream #include unordered_map #include memory #include string // 抽象敌人原型 class Enemy { public: virtual ~Enemy() default; virtual std::unique_ptrEnemy clone() const 0; virtual void spawn() const 0; virtual void setHealth(int health) 0; }; // 具体原型火焰恶魔 class FireDemon : public Enemy { public: FireDemon(int health, const std::string color) : health_(health), color_(color) {} std::unique_ptrEnemy clone() const override { return std::make_uniqueFireDemon(*this); } void spawn() const override { std::cout 生成 color_ 火焰恶魔生命值 health_ \n; } void setHealth(int health) override { health_ health; } private: int health_; std::string color_; }; // 原型管理器注册表 class PrototypeRegistry { public: void registerPrototype(const std::string key, std::unique_ptrEnemy prototype) { prototypes_[key] std::move(prototype); } std::unique_ptrEnemy createEnemy(const std::string key) { auto it prototypes_.find(key); if (it ! prototypes_.end()) { return it-second-clone(); } return nullptr; } private: std::unordered_mapstd::string, std::unique_ptrEnemy prototypes_; }; // 客户端代码 int main() { PrototypeRegistry registry; // 注册原型 registry.registerPrototype(red_demon, std::make_uniqueFireDemon(100, 红色)); registry.registerPrototype(blue_demon, std::make_uniqueFireDemon(80, 蓝色)); // 批量生成敌人 auto enemy1 registry.createEnemy(red_demon); auto enemy2 registry.createEnemy(blue_demon); auto enemy3 registry.createEnemy(red_demon); enemy1-spawn(); // 生成红色火焰恶魔生命值100 enemy2-spawn(); // 生成蓝色火焰恶魔生命值80 enemy3-setHealth(50); enemy3-spawn(); // 生成红色火焰恶魔生命值50 } 5. 优缺点分析 优点​​缺点​避免重复初始化复杂对象需正确处理深拷贝尤其含指针成员时动态添加/删除原型配置每个类需实现克隆方法增加代码量与工厂模式结合扩展性强对简单对象可能得不偿失 6. 调试与优化策略 调试技巧VS2022​​ 1.深拷贝验证 在拷贝构造函数中设置断点观察成员变量是否被正确复制。使用 ​内存断点​ 检测指针成员是否被重复释放。 2.​原型注册表检查 输出注册表的键列表确认原型是否成功注册。 for (const auto pair : prototypes_) { std::cout 已注册原型: pair.first \n; } 性能优化​ 1.原型预初始化 在程序启动时预加载常用原型减少运行时开销。 2.浅拷贝优化 对只读数据成员使用浅拷贝需确保生命周期安全。 class CheapToCopyEnemy : public Enemy { private: const Texture* sharedTexture_; // 只读资源浅拷贝 };
http://www.tj-hxxt.cn/news/143317.html

相关文章:

  • 延吉 网站建设昆明网站建设一条龙服务
  • 中企动力做网站行吗东莞网站系统哪里好
  • 中国石油第一建设公司官网福建seo排名
  • 临沂建设网站公司汉中网站建设公司
  • 好的培训网站模板湖北响应式网站设计制作
  • 消防网站建设的风格合肥网站建设兼职
  • 国外 家具 网站模板下载做网站用哪个软件好
  • 建商城网站需要什么怎样做网站和网站的友情链接
  • 做网站的公司北京有哪些网络推广平台有哪些公司
  • 塘厦建设网站连云港企业做网站
  • 枣阳网站建设_枣阳山水数码wordpress 解析漏洞利用
  • 网站后台管理布局wordpress全站同一个标题
  • 百度卖货平台珠海seo网站建设
  • 成都专业的网站建设公司做效果图的网站有哪些软件
  • 中国中建设计网站wordpress邮件收不到
  • 自己优化网站淄博网站制作升级优化
  • w3c网站开发互联网营销培训课程
  • 重庆建站管理系统价格学校网站建设报价是多少
  • 网站开发公司飞沐电子政务与网站建设方面
  • 网站到期续费通知青岛高端网站制作公司
  • 公司实力 网站宁波网站排名优化公司
  • 网站流量评价有哪几方面如何建企业仢网站
  • 哪个网站可以接图纸做县网站建设检查情况汇报
  • 新手搭建网站教程视频网站群建设工作培训会
  • 网站建设续费是那些介休市网站建设公司
  • 石家庄 做网站竞价开户推广
  • 三门峡城乡建设局网站做网站需要什么设备
  • 婚纱网站模板免费下载wordpress主题不支持php7
  • 有什么好的网站做数学题吗设计方案介绍
  • 湛江网站建设团队湛江专业的建站软件