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

上海知名的网站建设公司注册城乡规划师成绩查询

上海知名的网站建设公司,注册城乡规划师成绩查询,wordpress实现图片全屏代码,唐山市建设网站模板方法模式(Template Method Pattern) 是一种 行为型设计模式,用于定义 算法的骨架,并允许子类在不改变算法结构的情况下 重新定义 其中的某些步骤。 核心思想: 在 基类 中定义 算法的整体流程(骨架&am…

模板方法模式(Template Method Pattern) 是一种 行为型设计模式,用于定义 算法的骨架,并允许子类在不改变算法结构的情况下 重新定义 其中的某些步骤。

核心思想:

  • 基类 中定义 算法的整体流程(骨架),但具体的实现留给 子类
  • 基类 只负责调用流程,具体逻辑由 子类 来实现,符合 “开放封闭原则”(对扩展开放,对修改封闭)。

1. 结构

类图

+----------------------+
|   AbstractClass      |  (抽象类)
+----------------------+
| + templateMethod()   |  (定义算法的骨架)
| + step1()            |  (基本方法,可能有默认实现)
| + step2()            |  (抽象方法,交由子类实现)
+----------------------+▲│
+----------------------+
|   ConcreteClass      |  (具体子类)
+----------------------+
| + step2()           |  (实现父类的抽象方法)
+----------------------+

代码示例

#include <iostream>// 抽象类,定义算法骨架
class AbstractClass {
public:// Template Method,定义算法的框架void templateMethod() {step1();     // 固定实现step2();     // 交给子类实现step3();     // 固定实现}protected:void step1() {  // 提供默认实现std::cout << "Step 1: 基类的实现" << std::endl;}virtual void step2() = 0; // 纯虚函数,子类必须实现void step3() {  // 提供默认实现std::cout << "Step 3: 基类的实现" << std::endl;}
};// 具体子类,实现 step2
class ConcreteClass : public AbstractClass {
protected:void step2() override {std::cout << "Step 2: 子类的实现" << std::endl;}
};int main() {ConcreteClass obj;obj.templateMethod();  // 调用模板方法return 0;
}

2. 关键点

  1. templateMethod()基类 中定义算法的结构,并且不允许子类重写
  2. 部分方法(step1step3 在基类中有默认实现,子类可以直接继承。
  3. 部分方法(step2virtual(纯虚函数),子类必须实现自己的逻辑。

3. 适用场景

场景原因
多个类的算法流程相同,但部分步骤不同避免重复代码,提高复用性
算法的某些步骤可能会变化,但主流程不变通过子类扩展,而不影响基类
需要控制子类扩展的范围只允许子类修改某些特定步骤

文章转载自:

http://cRHrTm7g.wkqrp.cn
http://YQRL3th9.wkqrp.cn
http://SDAm0Ert.wkqrp.cn
http://CmcY6DWI.wkqrp.cn
http://p3BHip7O.wkqrp.cn
http://2lBVsZZj.wkqrp.cn
http://dyqBaFAQ.wkqrp.cn
http://XvsOxiyu.wkqrp.cn
http://77HO1iH4.wkqrp.cn
http://uEflxUCf.wkqrp.cn
http://pFItL4J1.wkqrp.cn
http://KrvzphJz.wkqrp.cn
http://5NuJ5KgI.wkqrp.cn
http://bAK7HRLR.wkqrp.cn
http://obnhb7bn.wkqrp.cn
http://SVaDav2w.wkqrp.cn
http://sNJO7EmD.wkqrp.cn
http://GRaVBj5q.wkqrp.cn
http://eeCdaIKO.wkqrp.cn
http://E3wyRJ8I.wkqrp.cn
http://3I78ocB7.wkqrp.cn
http://hrdViAiU.wkqrp.cn
http://i7xncVEl.wkqrp.cn
http://iEi7lcU3.wkqrp.cn
http://m8GwaQ4M.wkqrp.cn
http://fIZnfmBF.wkqrp.cn
http://hmciMmmR.wkqrp.cn
http://0RPIonjA.wkqrp.cn
http://fnLsBN92.wkqrp.cn
http://V77kFNK4.wkqrp.cn
http://www.dtcms.com/wzjs/642765.html

相关文章:

  • 快速搭建一个网站襄阳seo站内优化
  • 外贸网站是公司才能进去吗大学生创业计划书完整版
  • 内部网站做域名解析到端口seo招聘的关键词
  • 网站平台 生态建设企业如何做网站外包多少钱
  • 网站服务器网址joomla和wordpress
  • 莱芜二手房网站有什网站可以做设计赚钱
  • 门户网站维护做一个免费网站的流程
  • 南京做网站外包免费中英文网站源码
  • 网站的主机选择网站数据分析工具
  • 郑州网站优化平台手机网站开发模板
  • html5单页网站模板天津做网站建设的公司
  • 深圳网站网络建设seo优化外包
  • 网站前端开发语言友邦zh200安装视频
  • 抚顺建设网站seo教程合集
  • 电子商务基础网站建设与维护单项选择题小程序商店有哪些
  • 合租网站设计网站编辑信息怎么做
  • 企业注册百家号可以做网站吗闸北网站推广公司
  • 电子商务推荐类网站建设的目的网站开发可以申请著作权吗
  • 有利于优化的网站模板0基础怎么做网站模版
  • 外贸网站如何seo推广做网站子页
  • 建立网站免费网站ui设计怎么做
  • 微信公众号个人可以做网站么移动商城官网
  • 怎么做自动提卡网站北京社保网
  • 百度不收录的网站微商自己做网站
  • 深圳做公司英文网站多少钱苏州市住建局官网
  • 深圳手机网站建设联系电话WordPress 公海池
  • 网站的优势2016网站设计规范
  • 番禺人才网站大连城乡建设网官网
  • 制作网站建设小程序开发
  • 支付网站建设会计分录什么样的网站开发比较吃香