设计模式1--template method(模板方法)

template method (模板方法)

模板方法是很基础的一种设计模式,主要应对的问题是:

  • 主流程基本不变
  • 部分步变化性大

其实这种问题十分常见,比如,一个网络请求的处理过程(不知道合适不合适):

  • 步骤1,接受请求
  • 步骤2,处理请求,实现业务逻辑(变化的)
  • 步骤3,返回步骤2的数据给客户端

实际上就是一个c++多态的应用

#include <iostream>
#include <string>
using namespace std;

//基类server
class server
{
public:
    //主流程不变
    void run()
    {
        step1();
        step3(step2());
    }
protected:
    void step1()
    {
        cout<<"接受请求"<<endl;
    }
    virtual string step2()=0;

    void step3(string res) {
        cout<<"返回数据:"<<res<<endl;
    }
    virtual ~server()
    {

    }
};

//处理1
class http:public server
{
    virtual string step2()
    {
        return "http 数据";
    }
};
//处理2
class json:public server
{
    virtual string step2()
    {
        return "json 数据";
    }
};
int main(int argc, char const *argv[]) {

    http* hp = new http();
    hp->run();
    json* jp = new json();
    jp->run();
    return 0;
}

template.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 场景问题# 1.1 登录控制## 几乎所有的应用系统,都需要系统登录控制的功能,有些系统甚至有多个登录控制的功...
    七寸知架构阅读 2,000评论 3 53
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • 设计模式汇总 一、基础知识 1. 设计模式概述 定义:设计模式(Design Pattern)是一套被反复使用、多...
    MinoyJet阅读 3,984评论 1 15
  • 春风里 樱红的花开着 在那山坡 一片一片 满满的 你站在花海 幸福着 开心着 而我在花外 把心涂成 你 喜欢的颜色...
    浊酒清忧阅读 224评论 0 0