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
热门推荐
如何打造高级感穿搭?“上下一白”是关键!
辣椒病害防治:精准农药选择指南
辣椒炭疽病的防治策略
理财产品的风险评估等级 理财产品风险评级的依据
酱爆八爪鱼的做法详解:材料、步骤与小贴士
清蒸八爪鱼的做法(家庭厨房制作清蒸八爪鱼的详细教程)
从疏离到重聚:如何挽回渐行渐远的友谊
紫色羽绒服让你成为职场最亮眼的存在
冬季穿搭新宠:紫色羽绒服的多种搭配方案
K7038最新时刻表出炉!哈尔滨至漠河速达攻略
漠河大雾预警!哈尔滨至漠河火车出行攻略
你家的米粑保存对了吗?来测一测!
长高体操:科学增高的正确姿势
上海六一儿童医院专家推荐:三个简单有效的长高运动
合肥新晋网红打卡地:合柴1972 & 长江180艺术街区
辣椒常见病害防治方法
秋冬打卡!岱鳌山&大汉塘水库绝美风光
ChatOpenAI:如何优雅地处理AI系统的错误?
揭秘AI系统中的错误处理黑科技
《精灵梦叶罗丽》第八季:仙子们的魔法宝杖大揭秘
《精灵梦叶罗丽》:王默的五大魔法神器揭秘!
猪肝的双面人生:营养与安全的平衡之道
秋冬养生:猪肝家常做法大揭秘!
猪肝:营养宝库还是健康陷阱?
黄豆猪肝汤:美颜补血新宠!
孔子教你如何优雅面对朋友分离
空海法师教你把修行融入生活
丹尼尔·夏皮罗教你化解职场冲突
英语语法思维导图:结构化学习的利器
如何理解黄金价值的长期趋势?这种理解如何帮助投资者制定策略?