簡體   English   中英

這個類圖正確嗎?

[英]Is this Class Diagram Correct?

我需要一些幫助,以確保自己的工作正確無誤。 我為流行的在線購物場景制作了一個用例圖和類圖。

請仔細閱讀它並進行建設性批評,在我仍在學習UML的同時,請讓我對它有您的看法。

建模背后的故事如下所示:

公司的名稱是X-company,他們涉足塗料銷售。 X-company的網站將這些塗料在線銷售給兩種類型的客戶-零售商和批發商。 X-Company目前有幾種油漆,它們的顏色,大小,成本各不相同,每種油漆類型在這些特性上明顯不同。 零售商可以一次登錄網站並一次購買一位數的油漆(例如1或2種油漆),而批發商則以10%或以上的折扣10%,20%或以上的20%,30%的折扣購買大量油漆。 30種及以上的塗料。

該網站已變得盡可能簡單。 客戶到達現場,選擇塗料的類型,並顯示塗料的特性。 如果客戶選擇購買,他們會選擇所需數量。 如果客戶對價格滿意,他們將確認訂單。 確認后,網站會檢查塗料庫存,以查看是否有足夠的塗料。 如果沒有可用的,則通知客戶並要求其選擇另一種類型。 如果可用,客戶將提供支付卡詳細信息,例如地址,卡號,卡號。 付款是通過外部集成完成的。 付款后,客戶訂單將發送給客戶,除非客戶要求取消訂單或通過網站管理員發送訂單。

網站組織者或管理員負責在網站上添加新塗料,並在有新塗料庫存時取出舊塗料。

我繪制的類圖如下所示:

類圖

  • 給類起單數名。 訂單,而不是訂單。 折扣,不是折扣。 但是,如果您的類是Orders的collection \\ list,那么“ Orders”就可以了。

  • 用戶一次只能購買一種以上的塗料! Order類應該具有Paint的集合,而不是單個Paint實例。

  • Paint,PaintType設計似乎不合邏輯。 我不明白為什么應該有一個以上的班級。 合並為Paint類。

  • 我認為應該有一個PaintStock類。 Administrator類中的方法似乎是對PaintStock完成的事情,因此將其移到上方。 Administrator類需要一個PaintStock引用,因此可以調用PaintStock.Add等。

  • 給定其中的內容,付款類別應稱為CreditCardPayment。 我懷疑信用卡不是付款的唯一方式。 我將創建一個Payment基類,以便我們以后可以輕松擴展付款方式。

  • 添加/刪除繪畫功能不適用於Administrator類。 將這些方法放在PaintStock類中。

  • 將BulkBuyer重命名為批發商

  • 考慮一個用戶類。 擺脫零售商和批發商。 我看不出有什么不同的課程值得。 在User類中創建一個BuyerType字段以進行區分。 如果您的業務規則決定了基於零售商還是批發商的購買限制,那么這種簡單的規則差異就可以輕松地存在於一個類別中。

  • 通常,這是一個好規則,不要存儲計算結果。 因此,Order.TotalCost應該是方法而不是字段。

  • 訂單需要使用Cancel方法。 不是管理員類。 Administrator類需要一個Order引用,以便可以調用Order.Cancel。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM