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

中国建设教育协会报名网站显卡服务器租用

中国建设教育协会报名网站,显卡服务器租用,没有网站seo怎么做,精品网站模板目录 1、模板模式含义 2、模板模式的UML图学习 3、模板模式的应用场景 4、模板模式的优缺点 5、C实现的实例 1、模板模式含义 模板模式#xff08;Template Method Pattern#xff09;是一种行为设计模式#xff0c;它定义了一个操作中的算法骨架#xff0c;将某些步骤…目录 1、模板模式含义 2、模板模式的UML图学习 3、模板模式的应用场景 4、模板模式的优缺点 5、C实现的实例 1、模板模式含义 模板模式Template Method Pattern是一种行为设计模式它定义了一个操作中的算法骨架将某些步骤的具体实现延迟到子类中。 模板模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤从而实现代码复用和扩展性。 2、模板模式的UML图学习 抽象基类AblstractClass负责规定好接口让子类实现接口并定义一个模板方法。模板方法是算法骨架包含了调用基本操作的步骤。具体实现子类ConcreteClass实现抽象基类的抽象接口即实现模板方法中的基本操作。 3、模板模式的应用场景 1存在一组相似的操作当有一组操作拥有相同的算法结构但某些步骤的实现细节各不相同时可以使用模板模式来定义这些操作的通用部分并将变化的部分留给子类去实现。 2需要代码复用和扩展性模板模式通过定义算法骨架和延迟某些步骤的实现使得代码更加灵活和可扩展。 4、模板模式的优缺点 1优点 封装了不变部分扩展了可变部分模板模式将算法的不变部分封装在抽象基类中而将可变部分延迟到子类中实现从而实现了代码的复用和扩展。提高了代码的可维护性由于算法骨架在抽象基类中定义因此当算法结构发生变化时只需要修改抽象基类即可而不需要修改每个具体实现子类。 2缺点 增加了系统的复杂性模板模式需要定义抽象基类和具体实现子类以及它们之间的继承关系这可能会增加系统的复杂性。可能导致子类过多如果算法中有多个可变步骤那么可能需要定义多个具体实现子类来覆盖这些步骤从而导致子类数量过多。 5、C实现的实例 以下是一个使用C实现的模板模式示例该示例模拟了一个咖啡冲泡过程其中包含了冲泡咖啡的算法骨架和不同的冲泡步骤实现。 #include iostream // 抽象基类定义模板方法和基本操作 class CoffeeMaker { public: virtual ~CoffeeMaker() {} // 模板方法冲泡咖啡的步骤 void brewCoffee() { boilWater(); brew(); pourInCup(); if (customerWantsCondiments()) { addCondiments(); } } protected: // 基本操作留给子类实现 virtual void brew() 0; virtual void addCondiments() 0; // 可能不需要子类重写的辅助方法 void boilWater() { std::cout Boiling water std::endl; } void pourInCup() { std::cout Pouring into cup std::endl; } // 可能需要子类决定的策略方法 virtual bool customerWantsCondiments() { return true; } }; // 具体子类黑咖啡 class BlackCoffee : public CoffeeMaker { protected: void brew() override { std::cout Brewing black coffee std::endl; } void addCondiments() override { // 黑咖啡不加调料 } }; // 具体子类加糖加奶咖啡 class SugarMilkCoffee : public CoffeeMaker { protected: void brew() override { std::cout Brewing coffee with sugar and milk std::endl; } void addCondiments() override { std::cout Adding sugar and milk std::endl; } bool customerWantsCondiments() override { return true; // 假设加糖加奶咖啡总是需要加调料 } }; int main() { CoffeeMaker* maker new BlackCoffee(); maker-brewCoffee(); delete maker; std::cout \n; maker new SugarMilkCoffee(); maker-brewCoffee(); delete maker; return 0; } 在这个示例中CoffeeMaker类是抽象基类它定义了冲泡咖啡的基本步骤作为模板方法brewCoffee并声明了两个纯虚函数brew和addCondiments作为基本操作让子类去实现。通过这种方式我们可以复用通用的冲泡流程同时允许子类灵活地改变某些步骤符合模板方法模式的设计理念。
http://www.dnsts.com.cn/news/40666.html

相关文章:

  • wordpress做招聘网站郑州妇科医院哪家好知乎
  • 代做道具网站云浮网站设计
  • 海南的网站建设公司哪家好天津百度爱采购
  • 网站开发的原理东莞是什么网站建设
  • 网站布局和建站的区别5944免费空间上搭建网站
  • 个体户 做网站怎么更改网站的备案号
  • 免费做请帖的网站做采集的网站有流量吗
  • 网站响应式技术无锡网站商城建设
  • 做百度网站每年的费用多少合适网页开发用什么语言
  • 青岛公司网站建设开发网站 备案 几天
  • 搜狗站长工具综合查询天元建设集团官网
  • 域名证书查询网站阿里巴巴国际站坑人
  • 深圳定制网站制作招聘网网络设计报告的研究意义
  • 百度索引量和网站排名天津广告设计公司排名
  • 做资源网站 文件能存储到云盘吗自己做的网站如何加视频
  • 网站 .net 多少钱始兴生态建设网站
  • 建设网站价位在线网站seo诊断
  • 上海网站制作建设是什么做ipo尽调需要用到的网站
  • 简约大方的网站南宁模板建站平台
  • 网站开发主管要做什么物流公司网站建设
  • 宁波网站建设托管技能培训有哪些
  • 长沙网站建设多少钱天津建设网站公司
  • 建站工具模板北京百度seo服务
  • 郑州汉狮做网站好不微信wordpress小工具
  • 农业公司怎样建立网站网络公司 网站设计
  • 广西宏泰成建设集团网站整合wordpress与discuz
  • 个人网站如何制作快速做网站流量数据统计分析
  • 网站安全等级评审在哪里做兰州400电话网站建设
  • 自己做的网站怎么上线百度推广平台登录入口
  • 甘肃省住房与城乡建设部网站专业网站开发开发