zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C++状态模式

2023-09-14 09:12:42 时间

制作茶和制作咖啡的流程,是相似的,把相似部分提取出来,作为模板。下次做其他类似的直接使用模板,这就是模板思维。思路很简单,直接看代码。
makefile文件。

Exe : Template.o
	g++ -o Exe Template.o
main.o : Template.cpp
	g++ -c -g Template.cpp
rm :
	Template.o
#include <iostream>
#include <string>
using namespace std;

//模板方法

class Template
{
public:
    //找好水
    virtual void find_water() = 0;
    //煮水
    virtual void boil_water() = 0;
    //放入杯中
    virtual void pour_in_cup() = 0;
    //加作料
    virtual void add_Seasoning() = 0;
    //流程
    void make();
};
void Template::make()
{
    find_water();
    boil_water();
    pour_in_cup();
    add_Seasoning();
}

class MakeTea : public Template
{
public:
    //找好水
    void find_water();
    //煮水
    void boil_water();
    //放入杯中
    void pour_in_cup();
    //加作料
    void add_Seasoning();
};
void MakeTea::find_water()
{
    cout << "water for tea" << endl;
}

void MakeTea::boil_water()
{
    cout << "boil water for tea" << endl;
}

void MakeTea::pour_in_cup()
{
    cout << "pour water in cup for tea" << endl;
}

void MakeTea::add_Seasoning()
{
    cout << "add seasoning in water for tea" << endl;
}

class MakeCoffee : public Template
{
public:
    //找好水
    void find_water();
    //煮水
    void boil_water();
    //放入杯中
    void pour_in_cup();
    //加作料
    void add_Seasoning();
};
void MakeCoffee::find_water()
{
    cout << "water for Coffee" << endl;
}

void MakeCoffee::boil_water()
{
    cout << "boil water for Coffee" << endl;
}

void MakeCoffee::pour_in_cup()
{
    cout << "pour water in cup for Coffee" << endl;
}

void MakeCoffee::add_Seasoning()
{
    cout << "add seasoning in water for Coffee" << endl;
}

int main(void)
{
    MakeTea* p_MakeTea = new MakeTea;
    p_MakeTea->make();
    MakeCoffee* p_MakeCoffer = new MakeCoffee;
    p_MakeCoffer->make();

    delete p_MakeTea;
    delete p_MakeCoffer;
    return 0;
}

哎呦喂ヾ(✿゚▽゚)ノ~路长馆小,雪轻帘薄,酒热乎,这位爷~您ヾ(✿゚▽゚)ノ~ 里面坐~
本公众号专注分享C++,ffmpeg,opencv等相关音视频知识
webrtc,udp,tcp,rtsp,rtmp,srt/nginx+rtmp等流媒体协议和服务器
同时也会有大厂音视频技术专家不定期直播分享…
国人开发流媒体srs服务器,及yangrtc(国人版的webrtc)协议新动向
偶尔分享下程序员梦呓碎碎念(๑•॒̀ ູ॒•́๑)啦啦啦
目前刚刚开通,接受读者的优质投稿…
鉴于国内音视频圈子小,起步晚,以致分享少,门槛高,特开通分享,一起扇动这阵风吧!
微信扫描下方二维码,关注公众号,赶快进入音视频开发者社区吧!