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
热门推荐
中国最长跨市“地铁”要来了
罗望子酱(亚参酱)
【网络辟谣】尿酸高的人不能喝茶?喝“防弹咖啡”可以减肥?真相是→
咸味水果欧罗莎在琼海首种成功挂果
茶与咖啡:肥胖人士的健康饮品选择指南
天津水务引入AI客服,24小时在线解决供水问题
供水遇难题?12345热线:最快5天解决,市民称“真香”
十二时辰里的劳动者:从子时到亥时的坚守与奉献
热力与药酒结合,中医火熨术治疗多种疼痛
研究证实火熨术治疗颈椎病效果佳,复发率低
火熨术疗法:热力传导药酒,调理疼痛与妇科疾病
火熨术:热力传导药酒祛病痛,8类人群慎用
火熨术祛寒镇痛效果好,这些人群慎用
幼鸽养殖八大要点:营养供给与健康管理并重
从作息到放飞:科学驯养幼鸽的完整指南
北魏迁都洛阳后,袴褶引领服饰新潮流
北魏孝文帝的服饰改革:一次成功的文化变革
内蒙古壁画展揭秘北魏服饰魅力
23%美国老年人生活在贫困线以下,养老制度加剧社会不公
美国前总统退休生活:20万年薪加终身医疗保障
上海书展热议《经典常谈》:朱自清带你走进传统文化
从《说文解字》到《诗经》:《经典常谈》中的古人智慧
培养批判性思维,提升你的机智水平
昆明医生业余练格斗,UFC赛场一腿成名
从规模到规则:战觉城与终极格斗冠军赛的五大不同
UFC澳门站:医生石铭KO夺冠,赛后担忧对手安危
橱柜选择全屋定制还是购买成品
十二生肖古诗密码:一首诗解密你的属相性格
舒眠胶囊治疗失眠效果如何?专家解析其功效与使用注意事项
GABA含量揭秘:舒眠胶囊助眠效果与使用禁忌