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

做现货黄金看什么网站修改wordpress文件大小

做现货黄金看什么网站,修改wordpress文件大小,惠州做网络推广的公司,3免费网站建站一:概述 模板方法(Template Method)是一种行为型设计模式。它定义了一个算法的基本框架,并且可能是《设计模式:可复用面向对象软件的基础》一书中最常用的设计模式之一。 模板方法的核心思想很容易理解。我们需要定义一…

一:概述

        模板方法(Template Method)是一种行为型设计模式。它定义了一个算法的基本框架,并且可能是《设计模式:可复用面向对象软件的基础》一书中最常用的设计模式之一。

        模板方法的核心思想很容易理解。我们需要定义一个包含多个固定步骤的算法框架。具体的实现类只能重写这些步骤,但不能改变整体框架。这些步骤通常被称为钩子方法(hook methods)。

 二:设计思想

  • 定义一个包含多个典型步骤的算法框架。
  • 子类可以调整这些步骤,但不能改变整体框架。

三:使用场景

  • 需要使用算法的不同版本。
  • 这些算法版本由相似的步骤组成。

四:模式结构

AbstractClass(抽象类)

  • 定义算法的结构,由多个步骤组成。
  • 算法的步骤可以是虚函数或纯虚函数。

ConcreteClass(具体类)

  • 根据需要重写算法的特定步骤。

五:代码示例

#include <iostream>// 抽象基类,定义模板方法
class Meal {
public:// 模板方法,final 关键字确保子类不能重写该方法void prepareMeal() {  boilWater();              // 步骤 1:烧水cook();                   // 步骤 2:烹饪,子类需要实现serve();                  // 步骤 3:上菜}virtual ~Meal() = default;private:void boilWater() {                // 步骤 1:烧水,所有餐食共享的步骤std::cout << "Boiling water\n";}virtual void cook() = 0;          // 步骤 2:烹饪,子类必须实现virtual void serve() = 0;         // 步骤 3:上菜,子类必须实现
};// 具体子类:制作汤
class Soup : public Meal {
private:void cook() override {            // 实现具体的烹饪步骤std::cout << "Cooking soup\n";}void serve() override {           // 实现具体的上菜步骤std::cout << "Serving soup\n";}
};// 具体子类:制作沙拉
class Salad : public Meal {
private:void cook() override {            // 实现具体的烹饪步骤std::cout << "Preparing salad\n";}void serve() override {           // 实现具体的上菜步骤std::cout << "Serving salad\n";}
};int main() {std::cout << "Preparing meal of Soup:\n";Meal* meal = new Soup();meal->prepareMeal();              // 调用模板方法,自动完成一系列步骤delete meal;std::cout << "\nPreparing meal of Salad:\n";meal = new Salad();meal->prepareMeal();              // 调用模板方法,自动完成一系列步骤delete meal;return 0;
}

六:相关模式

      模板方法模式和策略模式的使用场景非常相似。两者都允许提供算法的不同变体。模板方法模式通过子类化在类级别上实现,而策略模式通过对象组合在对象级别上实现。策略模式将不同的策略作为对象提供,因此可以在运行时交换策略。模板方法模式倒置了控制流,遵循好莱坞原则:“别找我们,我们来找你”。策略模式通常是一个黑盒,它允许你在不需要了解其细节的情况下替换策略。

七:优缺点

 优点

  • 通过创建新的子类,新的算法变体易于实现。
  • 算法中的共同步骤可以直接在接口类中实现。

缺点

  • 即使是算法的小变体,也需要创建一个新的类,这可能导致创建许多小类。
  • 算法框架是固定的,无法更改;不过,你可以通过将框架函数设为虚函数来克服这一限制。

参考:

1. https://zh.wikipedia.org/wiki/%E6%A8%A1%E6%9D%BF%E6%96%B9%E6%B3%95

2. The Template Method – MC++ BLOG

http://www.yayakq.cn/news/156280/

相关文章:

  • 建设网站建设网站佛山建筑设计院有限公司官网
  • 做 理财网站好网站首页psd下载
  • 网站浏览量提升2023小规模企业所得税税率是多少
  • 邢台移动网站建设公司网络电商平台有哪些
  • 企业网站推广成功案例软装设计公司哪家好
  • 网站设计的工作要求淄博优化网站排名
  • 网站建设与管理专业学什么企业信息门户网站 建设
  • 微网站内容页模板注册工商企业
  • 找人做网站注意杭州专业网站
  • 济南优化seo网站建设wordpress标签搜索引擎
  • 网站开发与网页后台开发2022年5月国内重大新闻
  • 网站备案意味着什么网站建设与推广推荐
  • 潮州企业网站建设网站语音转写怎么做
  • 网站制作的基本步骤安徽建设工程有限公司官网
  • 接做图网站柳城网站开发
  • 网站建设推广费怎么做账装潢设计报价
  • 成品软件源码网站长沙网红打卡景点
  • 怎么设计手机网站浙江省工程建设质量管理协会 网站
  • 金融网站框架模板第三方做的网站不给源代码
  • 包头教育平台网站建设如何设计网站首页
  • 温州制作网站公司网站建设质量保证金
  • 山东省建设监理协会网站应该选用哪种口罩
  • 济南建设银行网站李贤威wordpress建站教程
  • 看房子建设进度的网站怎么做网页 在浏览器上
  • 扬州市建设工程造价管理站网站东莞市微客巴巴做网站
  • 河南省住房城乡与建设厅网站首页wordpress 主题模板下载失败
  • 优秀网站及网址seo域名如何优化
  • 山东省建设厅招标网站首页互联网公司排名 2022
  • 建网站首选公司公司主页怎么制作
  • 专业app怎么制作网站吗怎么用代码创建网站教程