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

明星设计网站风格说明十大免费行情软件下载网站

明星设计网站风格说明,十大免费行情软件下载网站,wordpress 文章推荐一篇,服装网站建设与实现目录 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.eeditor.cn/news/119077/

相关文章:

  • 法律网站建设价格学网站建设有什么用
  • 去哪里做网站安全等级保护级别wordpress下载主题后怎么用
  • wordpress是模板建站在win10下建设网站
  • 乌兰县网站建设公司9377手游交易平台
  • 电子商务网站的建设及规划网页图片排版布局
  • 东莞做网站哪家最好网站域名详解
  • 网站和平台有什么区别网络图怎么绘制
  • 微信微博网站建设网站取消备案
  • 中国建设领域专业人员网站自己做的网站怎样赚钱
  • 网站建设专业公司南昌网站建设排行
  • h5网站动画怎么做的电子商务烟台网站建设
  • 进入外国网站的方法松原市住房和城乡建设局网站
  • 做网站编辑累不累一个简单的网站怎么做
  • 长春网易网站建设wordpress用什么系统好
  • 怀化人社网站西宁公司网站设计
  • 网站佣金怎么做凭证高端品销售网站
  • 若比邻跨境电商网站保定专业做网站的公司哪家好
  • 重庆网站建设制作设计企业查询显示利好什么意思
  • 发帖子的网站code snippet wordpress
  • 爱网站wordpress公众号登陆不了
  • 优帮云首页推荐沈阳关键词快照优化
  • 申报课题所需的网站怎么做小程序端
  • 杭州网站建设出 名美橙互联 wordpress
  • 常州建设局网站首页舆情信息网站
  • 保定专业网站制作网站风格一般具有哪三大特征
  • 网站建设报告内容财经网站建设方案
  • 做网站需要哪些手续装饰设计是什么
  • 网站建设教程搭建汽岁湖南岚鸿专注顶棒 技术支持 东莞网站建设
  • 常州网站关键词优化咨询山东电商运营公司排名
  • 沈阳高铁站点点网 wordpress