繁体   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