博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小话设计模式五:模板方法模式
阅读量:6200 次
发布时间:2019-06-21

本文共 895 字,大约阅读时间需要 2 分钟。

模板方法模式定义:

  定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

模板方法解析:

  模板方法模式是比较简单的一种设计模式,但是它却是代码复用的一项基本的技术,在类库中尤其重要,它遵循“抽象类应当拥有尽可能多的行为,应当拥有尽可能少的数据”的重构原则。作为模板的方法要定义在父类中,在方法的定义中使用到抽象方法,而只看父类的抽象方法是根本不知道怎样处理的,实际做具体处理的是子类,在子类中实现具体功能,因此不同的子类执行将会得出不同的实现结果,但是处理流程还是按照父类定制的方式。这就是模板方法的要义所在,制定算法骨架,让子类具体实现。 

  UML图如下:

  简单示例代码如下:

//人类基类class Person{public:    virtual ~Person(){};    void eatFood();protected:    Person(){}    virtual void eatBreakfast() = 0;    virtual void eatLunch() = 0;    virtual void eatSupper() = 0;};void Person::eatFood()  //一天吃饭顺序是固定的,先吃早餐,再吃午餐,最后吃晚餐,但是吃的东西确实不同人有不同的吃法{    eatBreakfast();    eatLunch();    eatSupper();}//胖子class FatPerson : public Person{protected:    virtual void eatBreakfast();    virtual void eatLunch();    virtual void eatSupper();};void FatPerson::eatBreakfast(){    cout<<"早餐:不吃"<
eatFood(); delete pPerson; return 0;}

转载地址:http://crvca.baihongyu.com/

你可能感兴趣的文章
wget参数用法详解
查看>>
使用curl命令查看访问url的时间
查看>>
python添加环境变量
查看>>
DP-01背包 (题)
查看>>
WinForm中跨线程操作控件
查看>>
CODING 敏捷实践完全指南
查看>>
unittest测试框架和测试报告的输出实例(一)
查看>>
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
python 输出当前行号
查看>>
12C -- 配置Application Continuity
查看>>
Flymeos插桩适配教程
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
java 基础2
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
我的友情链接
查看>>