C++使用桥接模式 实现点不同容量不同口味组合的奶茶
创作时间:
作者:
@小白创作中心
C++使用桥接模式 实现点不同容量不同口味组合的奶茶
引用
CSDN
1.
https://blog.csdn.net/m0_67469586/article/details/137235568
有个需求,点奶茶,奶茶容量:分为大,小杯。奶茶口味:可以添加牛奶,水果。
用桥接模式实现,可以点不同容量不同口味组合的奶茶,同时方便后期更换杯子容量和口味。
口味抽象类
class Taste
{
public:
virtual void addsomething() = 0;
};
子类 牛奶
class Milk : public Taste
{
public:
virtual void addsomething() { cout << "牛奶" ; }
};
子类 水果
class Fruit : public Taste
{
public:
virtual void addsomething() { cout << "水果" ; }
};
桥接类 大杯小杯抽象类
class Tea
{
protected:
Taste* taste; //作为属性 给子类使用 private保护类型
public:
Tea(Taste* tatste) :taste(tatste) {};//有参构造
virtual void orderTea(int count) = 0;
};
子类 小杯
class smallTea : public Tea
{
public:
smallTea(Taste* tatste) :Tea(tatste) {}
virtual void orderTea(int count)
{
cout << "小杯" << endl;
taste->addsomething();
}
};
子类 大杯
class bigTea : public Tea
{
public:
bigTea(Taste* tatste) :Tea(tatste) {}
virtual void orderTea(int count)
{
cout << "大杯" << endl;
taste->addsomething();
}
};
测试代码
int main()
{
Taste* taste1 = new Milk();
Taste* taste2 = new Fruit();
Tea* tea1 = new smallTea(taste1);
Tea* tea2 = new bigTea(taste2);
tea1->orderTea(1);
tea2->orderTea(1);
return 0;
}
文章来源:CSDN
热门推荐
冬季室内湿度不足?耶鲁大学教你防病妙招!
秋冬干燥?加湿器选购与使用全攻略
人工智能时代:是福音还是“脑腐化”?
从出圈到“出海” 从非遗到产业——徐集花生糖不断提升产品知名度和品牌影响力
第一次带孩子去滑雪,一篇解答你出发前心中的疑问
做好这几点!滑雪的尽头不再是“骨科”
朱砂安神丸:千年古方的正确使用指南
山头火命:护心护眼小妙招
山头火命男孩的家居风水秘籍
山头火命如何提升运势?从风水布局到配饰选择的全方位指南
痰中带血:这些观察要点和就医建议请收好
营养心肌的5类药物
心律不齐患者如何做好医院管理?
南京医科大学突破性研究:左束支起搏技术为心律不齐治疗带来新希望
心律不齐患者的营养食谱指南
美国心脏协会推荐:心律不齐患者的运动指南
广州一日游精华线路:白云山、西堤美食、沙面岛与珠江夜景
粽子和牛奶可以一起吃吗?这些食用禁忌需谨记
看饿了!龙船饭、甜醅子、煎堆……各地过端午吃什么?
拔丝地瓜里的温情:从传统工艺到王源的亲情故事
秋冬养生首选:拔丝地瓜的营养大揭秘
山东拔丝地瓜:甜蜜记忆中的文化传承
拔丝地瓜:从历史到餐桌的传统美食
运动中肌肉痉挛的处理方法
心律不齐自检:守护心脏健康的实用指南
心律不齐:从明星案例看情绪与心脏健康的关联
焦虑抑郁如何影响心律?双心医学揭示心理与心脏健康的双向关系
摄影技巧:照片虚化完全指南
人像多重曝光拍摄技巧
“三三制”与近现代中国军队