我有一個計費系統,其中不同類型的客戶有不同類型的折扣方案。對於給定的賬單,應根據客戶和產品的類型生成淨應付賬款金額。如何去解決這個問題(設計模式)
而且也有一些規則。像:
•如果用戶是店裏的員工,他得到30%的折扣
•如果用戶是店裏的會員,他得到10%的折扣
•如果該用戶已經超過2年的客戶,他得到了5%的折扣。
•賬單上每100美元就會有5美元的折扣(例如990美元,折扣爲45美元)。
•百分比折扣基礎上不雜貨 申請...
我在我的腦海裏有幾個想法。第一個辦法是考慮一個裝飾圖案:
Customer <<Interface>>
|
CustomerImpl
DiscountDecorator <<AbstractClass>> imp Customer
| | | |
AffiDiscount StoreEmp OverTwoYears AnyOtherDisc
Discount Discount Discount
Items {
//? ? :/
}
但隨後Discounts
取決於Items
爲好。
我有什麼選擇?
- extend
Customer
接口與Item
接口跟蹤項目的類型? - 通過
List
的Items
折扣類。 ... 如何正確地與Customer
和Item
類共同關聯,以便我可以將它們裝飾在一起?
@Downvoter請說明你的反對理由,以便可以改善問題。 –