我有一個設計零售商系統的場景。這不是一個真正的實時應用,而只是一個場景來檢查我的OO設計技能是否正確以及我是否正確思考。我仍然在這裏學習。我正在做這個在C#中。我的OOP設計是否正確?
的情況是這樣的:
零售商銷售產品的固定希望設計一個系統,然後從他的各種固定數量的供應商最優惠的價格,並從該供應商的訂單。爲了簡單起見,我將固定式產品切割成同一家公司的一種產品,即XYZ鋼筆。每個供應商在詢問時會提供XYZ鋼筆的報價,零售商系統會從各賣家中選擇最佳價格並下達該賣家的訂單。
方法1:
- 創建供應商一個抽象類,每個供應商的實現。
- 每個供應商的實現都有一個PlaceOrder()方法和一個成本屬性。
- DataLayer設置每個供應商實施的成本屬性。
- 創建評估最優惠的價格每個實現,並將在適當的執行順序的CheckBestRetailer類。
方法2:
- 創建類型供應商的成本與性能和PlaceOrder()方法的列表。
- 對每個供應商的數據層增加了新的供應商類型列出並設置費用明細它從數據庫中獲得。
- CheckBestRetailer類環路直通該名單,並評估最優惠的價格每個對象,並將在適當的執行順序。
在上述兩個方面中,我覺得方法1更接近OOP,但前提是我擁有固定數量的供應商。如果供應商的數量可以根據從數據庫中檢索到的數據而改變,那麼方法2會更好。
您認爲如何?
我可能沒有最好的情況在這裏測試我的OOAD。我很想擁有一些我可以使用的示例場景......如果可能,請提供設計提示。
謝謝你的時間。
該死的,你打我吧:) –
如果我介紹新的複雜像一些供應商提供折扣和別人不一樣。那哪個更好? – user20358
你可以使用裝飾更多的行爲添加到特定的類,有很多的選擇..這真的取決於你現在需要解決的,如果折扣是可以適用於所有供應商的東西,那麼你仍然會是個不錯什麼問題選項2和一個單一的..如果..不嘗試複雜化你的設計思維未來的要求,直到你知道他們將要發生 –