首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >小型JEE项目的类图

小型JEE项目的类图
EN

Stack Overflow用户
提问于 2019-11-09 11:16:19
回答 1查看 171关注 0票数 0

我想在JEE中启动一个项目,我需要确认我的类图。我需要知道所用的方法是否正确,我所用的作文是否正确。

这是我的类图:

该项目是关于一个在线销售商店,它希望建立一个管理工具,以销售产品,并管理其产品。该工具必须包括以下功能:

  • 识别模块:识别客户、管理人员、主管
  • 销售模块:为用户购买
  • 产品管理模块:添加/删除产品
  • 统计模块:销售统计的可视化

功能规格

必须对应用程序采取行动,用用户ID和密码连接到应用程序。为了便于使用,并为了避免以后处理不当,以下是解决办法:

用户简介:

  • 用户将能够可视化我的在线竞赛出售的产品。用户可以下订单,只要他已经注册了网站我的在线比赛。

经理简介:

  • 经理将能够管理这些产品:
代码语言:javascript
运行
复制
- Add / Edit / Delete Products
- Add / Edit / Delete category

  • 这些数据插入可以使用CSV或XML文件,也可以通过网站上的各种形式进行。
  • 经理将能够查看销售统计数字。

主管简介:

  • 主管可以添加以上指定角色的经理。
  • 主管将能够查看销售统计数据。
  • 主管将能够查看经理执行的所有操作,这是一种审计跟踪。

我想知道你是否对我的设计有意见。此外,我对几种方法也很困惑,例如添加、修改和删除产品。我应该把它们放进经理或产品班吗?我写的作文是正确的还是应该删除?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-09 16:50:37

快速查看图表和建议

首先,关于类命名的一些次要注释:Ordered应该被称为Order

作文ArticleOrder之间是错误的(不是从正式的角度来看,而是从它所传达的意义来看)。使用一个普通的一对多的协会:它将更好地反映两个类之间关系的真实性质。请考虑到新的商品可能还没有订购,所以应该是1..*

+belongs+do处于关联的中间,在语法上是不正确的。你应该用一个普通的三角形代替(或者根本不使用)。三角形应朝向Person do |> OrderArticle belongs to |> Category的读取方向。

这些方法似乎没问题。您不需要添加后缀。

如何管理对象(创建/更新/删除)?

更高级的关注点不在于图表,而在于如何组织持久化(即数据库存储):

  • 您真的希望对象是一个活动记录,它是一个添加、更新和删除自身(到数据库)的对象吗?它设置简单,工作良好,但使类依赖于底层数据库实现,从而使维护变得更加困难;
  • 或者对每个对象使用一个存储库不是更好吗?在这种情况下,存储库充当管理所有数据库操作的集合。域对象(项目、订单、用户、.)然后没有任何关于数据库的知识,这将导致更易于维护的代码。

但这是一个更广泛的建筑问题。如果它只是用于JEE的第一个实验项目,那么您可以很好地使用活动记录。设置起来更简单。但是,在这种情况下,一定要消除Person上添加/更新/删除的歧义,因为它目前可能给人的印象是,任何人都可以添加任何人。

模型的改进

最后一点,也不是关系图本身,是关于域的。您的模型认为Order与单个Article有关。

然而,在现实中,订单一般只有一篇或几篇文章:如果这里也是这样的话,您的Order将成为OrderItem,而真正的Order将插入到PersonOrderItem之间。然后,您可以使OrderOrderItem之间的关系成为一个组合(即:OrderItemOrder拥有,Order负责创建它的项,而项目没有相关的顺序就没有意义)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58778707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档