0.背景 来看一个项目需求:咖啡订购项目. 咖啡种类有很多:美式.摩卡.意大利浓咖啡: 咖啡加料:牛奶.豆浆.可可. 要求是,扩展新的咖啡种类的时候,能够方便维护,不同种类的咖啡需要快速计算多少钱,客户单点咖啡,也可以咖啡+料. 最差方案 直接想,就是一个咖啡基类,然后所有的单品.所有的组合咖啡都去继承这个基类,每个类都有自己的对应价格. 问题:那么多种咖啡和料的组合,都相当于是售卖的咖啡的一个子类,全都去实现基本就是一个全排列,显然又会类爆炸.并且,扩展起来,多一个调料,都要把所有咖啡种类算上…