設計模式 Swift(策略模式)
閱讀大話設計模式心得,使用 Swift Ver. 3.0 (Jun 6, 2016)
商場收銀系統
目標:根據客戶所買的單價和數量來收費
1 | var total = 0.0 |
如果現在賣場產品都打 8 折要如何做
直接將 price * 0.8 會有問題
如果之後價格改回來或改成其他折扣,需要再改程式碼
如果又有滿 300 送 100 的促銷?
簡單工廠實現
OOP 並非類別越多越好,類別劃分是為了封裝
分類基礎是抽象,具有相同屬性和功能的抽象集合才是類別
所以要把打折作為一個類別