两个问题。一个模板模式,一个命令模式

tangcat123 2014-04-16 01:56:20

public:
void PrepareRecipe() //咖啡因饮料冲泡法
{
BoilWater(); //把水煮沸
Brew(); //冲泡
PourInCup(); //把咖啡因饮料倒进杯子
AddCondiments(); //加调料
}
void BoilWater()
{std::cout << "把水煮沸" << std::endl;}
void Brew()
{static_cast<T *>(this)->Brew();}
void PourInCup()
{std::cout << "把咖啡倒进杯子" << std::endl;}
void AddCondiments()
{static_cast<T *>(this)->AddCondiments();}
};
class Coffee : public CaffeineBeverage<Coffee>
{
public:
void Brew()
{std::cout << "用沸水冲泡咖啡" << std::endl;}
void AddCondiments()
{std::cout << "加糖和牛奶" << std::endl;}
};

这是讲模板方法设计模式的时候看到的代码
他可以直接将父类的Brew写成虚函数,然后让子类实现不就好了么
他写成这样的逗比方式有没有什么特别的好处?


免得再开帖
再问一个吧
http://blog.csdn.net/lcl_data/article/details/9080909
命令模式不应该是Invoker作为一个对象聚合在Command里么。
你看Command里不是还有Invoker的指针么,Invoker里可没有Command对象呀。
但是他图画的是Command聚合于Invoker,是不是它画反了,,但是搜了好几个命令模式都是这个图啊??
...全文
247 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

3,408

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 设计模式
社区管理员
  • 设计模式
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧