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

phpcms 后台修改修改网站备案号2023近期舆情热点事件

phpcms 后台修改修改网站备案号,2023近期舆情热点事件,wordpress 弹出框,三分钟短视频策划方案模板方法模式是一种行为设计模式,它通过定义一个算法的骨架,而将一些步骤延迟到子类中实现。Template Method 使得子类可以不改变(复用)一个算法结构 即可重定义(override 重写)该算法的某些特定步骤。基本…

模板方法模式是一种行为设计模式,它通过定义一个算法的骨架,而将一些步骤延迟到子类中实现。Template Method 使得子类可以不改变(复用)一个算法结构 即可重定义(override 重写)该算法的某些特定步骤。

基本结构

// 抽象类定义模板方法和基本操作
class AbstractClass {
public:// 模板方法,定义算法骨架(通常声明为final防止子类覆盖)void templateMethod() const {this->baseOperation1();this->requiredOperation1();this->baseOperation2();this->requiredOperation2();}// 基类中已实现的操作void baseOperation1() const {std::cout << "AbstractClass: 执行基础操作1\n";}void baseOperation2() const {std::cout << "AbstractClass: 执行基础操作2\n";}// 需要子类实现的纯虚函数virtual void requiredOperation1() const = 0;virtual void requiredOperation2() const = 0;// 虚析构函数virtual ~AbstractClass() = default;
};

开发人员只需继承AbstractClass  重写其中的虚函数然后调用templateMethod()即可

/ 具体实现类1
class ConcreteClass1 : public AbstractClass {
public:void requiredOperation1() const override {std::cout << "ConcreteClass1: 实现操作1\n";}void requiredOperation2() const override {std::cout << "ConcreteClass1: 实现操作2\n";}
};// 具体实现类2(带钩子方法覆盖)
class ConcreteClass2 : public AbstractClass {
public:void requiredOperation1() const override {std::cout << "ConcreteClass2: 实现操作1\n";}void requiredOperation2() const override {std::cout << "ConcreteClass2: 实现操作2\n";}void hook() const override {std::cout << "ConcreteClass2: 覆盖钩子方法\n";}
};

具体调用

int main() {std::cout << "同一客户端代码可以处理不同子类:\n";AbstractClass *concreteClass1 = new ConcreteClass1();concreteClass1->templateMethod();std::cout << "\n同一客户端代码可以处理不同子类:\n";AbstractClass *concreteClass2 = new  ConcreteClass2();concreteClass2->templateMethod();return 0;
}

uml图

应用场景

  1. 框架设计:定义框架的流程,允许用户自定义特定步骤

  2. 算法骨架固定:当多个类有相似算法但实现细节不同时

  3. 代码复用:将公共行为提取到父类中

  4. 控制子类扩展:限制子类只能修改算法的特定部分

优点

  1. 提高代码复用性,避免重复代码

  2. 良好的扩展性,符合开闭原则

  3. 便于维护,算法修改只需在父类中进行

  4. 反向控制结构,父类控制整体流程

缺点

  1. 每个不同的实现都需要一个子类,可能导致类数量增加

  2. 通过继承实现,可能违反组合优于继承的原则

  3. 父类与子类之间紧密耦合

实际应用示例

  1. STL中的分配器(allocator):定义内存分配算法框架

  2. GUI框架:如窗口显示流程固定,具体绘制由子类实现

  3. 单元测试框架:定义测试流程(setUp, test, tearDown)

  4. 编译器设计:编译流程固定,具体语法分析等步骤可变

http://www.dtcms.com/wzjs/166203.html

相关文章:

  • php网站设计盘古百度推广靠谱吗
  • 从化定制型网站建设天津百度seo推广
  • 开发软件下载网站微信上如何投放广告
  • 合肥网站商城开发百度官网网址
  • 深圳个性化网站建设公司网络营销服务公司有哪些
  • 做网站是用什么语言的win10最强性能优化设置
  • 网站能自己做吗南宁百度网站推广
  • 江苏亿之盛建设有限公司网站whois查询 站长工具
  • 网站开发和优化关系广州网站开发多少钱
  • 重庆做网站建设公司seo工资待遇怎么样
  • 做T恤卖网站国外网站开发
  • 网站建设公司的市场开发方案网站前期推广
  • 新乡营销网站建设公司最近新闻热点大事件
  • 深圳福永网站建设公司seo短视频加密路线
  • 菏泽网站开发公司江北关键词优化排名seo
  • 网站开发计划书模板免费测试seo
  • 如何自己开一个网站黄冈网站推广软件费用是多少
  • 平面设计学院百度seo排名优化公司哪家好
  • 湖南长沙旅游攻略自助游北京seo优化排名推广
  • 美国服务器网站推荐襄阳seo优化排名
  • 衡水电子网站建设做网站建设公司
  • 模板建站能建个门户网站吗网站制作代码
  • 怎么做网站底部备案号seo免费自学的网站
  • 网站创建域名怎么做自己的网站
  • 绵阳力嘉信息网站建设公司深圳网络推广seo软件
  • mvc4做网站五网站推广的软件
  • ui设计培训机构好惠州百度推广优化排名
  • 高端网站模板中国培训网
  • 飞扬动力网站建设关键词全网搜索工具
  • 做视频网站被判刑做直销去哪里找客户