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

临漳手机网站建设建设银行积分兑换商城官方网站

临漳手机网站建设,建设银行积分兑换商城官方网站,网站建设标题,响应式网站 移动端网站C之模板模式 描述实现原理示例步骤1步骤1 分析步骤2步骤2 分析调用输出结果 结论 描述 模板模式(Template Pattern)是设计模式中的一种行为型模式。 该模式定义一个操作中的算法骨架,而将具体的算法实现延迟到子类中。 模板模式使得子类可以…

C++之模板模式

      • 描述
      • 实现原理
      • 示例
        • 步骤1
        • 步骤1 分析
        • 步骤2
        • 步骤2 分析
        • 调用
        • 输出结果
      • 结论

描述

模板模式(Template Pattern)是设计模式中的一种行为型模式。
该模式定义一个操作中的算法骨架,而将具体的算法实现延迟到子类中。
模板模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

实现原理

在C++中,模板模式一般通过一个父类定义一个算法框架,将算法中的某些步骤定义为虚函数。子类通过继承父类并重写这些虚函数的方式来实现具体的算法。

示例

下面是一个简单的C++模板模式示例,假设要实现一个消息发送系统,其中有两种不同类型的消息:普通消息和加急消息。它们的发送流程是不同的,但消息的基本结构相同。
可以使用模板模式来实现这个系统。

步骤1

首先,需要定义一个抽象消息基类Message,其中定义发送消息的算法框架:

class Message {
public:// 发送消息的算法框架void send() {// 第一步:构造消息build_message();// 第二步:加密消息encrypt_message();// 第三步:发送消息send_message();}protected:// 构造消息(抽象方法)virtual void build_message() = 0;// 加密消息(抽象方法)virtual void encrypt_message() = 0;// 发送消息(抽象方法)virtual void send_message() = 0;
};
步骤1 分析

上面的代码中,定义了一个send()方法作为算法框架,其中包含三个步骤:构造消息、加密消息和发送消息。这三个步骤都被定义为抽象方法,需要在子类中实现。

步骤2

可以定义两个具体的消息类型:普通消息(NormalMessage)和加急消息(UrgentMessage):

// 普通消息
class NormalMessage : public Message {
protected:// 构造普通消息virtual void build_message() {cout << "构造一条普通消息" << endl;}// 加密普通消息virtual void encrypt_message() {cout << "对普通消息进行加密" << endl;}// 发送普通消息virtual void send_message() {cout << "发送普通消息" << endl;}
};// 加急消息
class UrgentMessage : public Message {
protected:// 构造加急消息virtual void build_message() {cout << "构造一条加急消息" << endl;}// 加密加急消息virtual void encrypt_message() {cout << "对加急消息进行加密" << endl;}// 发送加急消息virtual void send_message() {cout << "发送加急消息" << endl;}
};
步骤2 分析

上面的代码中,分别重写了Message中的三个抽象方法,实现了普通消息和加急消息的具体功能。

调用

最后,可以使用这两个具体的消息类型来发送消息:

int main() {Message* nm = new NormalMessage();nm->send();delete nm;Message* um = new UrgentMessage();um->send();delete um;return 0;
}
输出结果

输出结果为:

构造一条普通消息
对普通消息进行加密
发送普通消息
构造一条加急消息
对加急消息进行加密
发送加急消息

结论

从上面的代码可以看出,通过继承Message并重写其中的抽象方法来实现了不同类型消息的发送,而算法框架仍然是由父类Message所提供的。这就是模板模式的核心思想。

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

相关文章:

  • 网站的电子地图怎么做wordpress设置用户登录
  • 湘潭做网站 联系磐石网络关于动漫网站建设规划表
  • 纪检监察信息网站建设app是干什么用的
  • 龙口建网站公司哪家好外贸人才网论坛
  • app网站开发报价桂林网站建设科技有限公司
  • 创建网站需要哪些工作wordpress怎么看
  • 南京市工程建设交易中心网站网站建站中关键字搜索怎么弄
  • 深圳夫博网站建设有限公司网页html代码
  • 调兵山网站网页版梦幻西游仙玉做什么划算
  • 石狮建设局网站wordpress++xml
  • 南宁学做网站网站建设新方向
  • 龙岗网站建设icxun制作网页时用的最多的图像文件
  • 合肥商城网站开发网站布局策划案
  • wordpress注入文件吉林关键词排名优化软件
  • 衡水做网站价格免费源码资源源码站入口
  • 公众号开发 网站建设重庆市建设工程信息网行业协会
  • 内部网络网站怎么做网店怎么运营和推广
  • 网站备案中心linux建设网站
  • 宁波自助建站模板长春 网站 设计公司
  • 帮别人做网站必须要开公司冯站长之家官网
  • 企业外贸网站建设西安知名的集团门户网站建设公司
  • 做高级电工题的网站网站开发公司 优帮云
  • 保险网站导航广州seo营销培训
  • 网站必须做百度推广才能被别人搜到吗ps怎么做网页制作
  • 松江老城做网站discuz论坛模板
  • 山西手动网站建设推广做网站怎么偷源码做网站
  • 网站主机查询网页制作图片显示不出来
  • 长沙制作网站的公司注册公司名称的要求
  • 网站内容上传要求怎样把网站提交到百度
  • 全程营销网站建设公司网站排名提升软件