星巴茲咖啡 賣四種主要的飲品(houseBlend DarkRoast Decaf Espresso)

  • getDescription() 描述飲料

  • cost() 算出飲料的價錢

客人買咖啡會要求加各種料,例:牛奶、豆漿、摩卡、奶泡,每項配料都需加錢

如果把每項配料都做成一個類別?

主物件 Beverage

牛奶HouseBlend extends Beverage $20

牛奶DarkRoast extends Beverage $15

牛奶Decaf extends Beverage $12

牛奶Espresso extends Beverage $17

豆漿HouseBlend extends Beverage $15

......x4

摩卡HouseBlend extends Beverage $15

......x4

奶泡HouseBlend extends Beverage $15

......x4

類別爆炸!!

Q1:如果要新增一個配料是焦糖? =>再新增四個?

Q2:如果牛奶的價錢變了? =>有關牛奶的類別都要改過?

利用實體變數和繼承呢?

有什麼需求或其他因素可能改變,而影響這個設計?

配料價格改變 會更改到程式碼。

如果出現新的配料? 要改超類別cost()對配料的計算。

如果新增新口味飲料(例如:TEA冰茶),以上配料可能不適合,但是TEA還是繼承了Beverage。

如果客人想要雙倍摩卡?

results matching ""

    No results matching ""