1

当我们要求绘制类图时,大多数示例识别系统的域类并显示它们之间的关系。但它也显示了这些领域类中的业务方法。通常域类在应用程序中充当 DTO,并且应该只有字段并且 getter 和 setter 知道。

例如Doctor是一个域类。如果是这样,我们不能有正确的方法createPrescription()吗?该方法应该在使用域类的其他一些业务实现类中,Doctor对吗?

检查下面的链接以获取绘制的类图。

http://umldiagramtutorial.blogspot.com/2012/10/hospital-management-system-class-diagram.html

我要说的是Doctor域类不应该有这些方法,而是应该在DoctorMgtImpl课堂上。这是对的吗?

4

2 回答 2

1

我同意@vainolo,您的问题仅与实施有关。我参与了一个项目,其实体与这个医院管理系统非常相似。您可以看到我们使用的主要实体,我们没有将所有的 DTO、DAO 放在顶层类图中。关于实现,我们采用的架构是:持久域模型类(例如 Doctor.java),DAO 使用对编码器友好的 CRUD 操作来处理这些持久类,使用带有接口和实现的 DAO 的无状态业务层(“管理器”) , 控制器使用管理器。为所有这些类建模需要几天时间。我们决定您的 UML 类图的目的不是表示代码。我推荐这种方式:)

于 2013-08-21T09:02:22.440 回答
1

这更像是一个设计/OOP 问题而不是 UML 问题。如果您遵守SOLID原则,那么您的观点是正确的:它们赋予一个对象(医生)不同的职责。此外,Doctor它不是抽象的,而是非常具体的东西。

另一方面,这个类模型为您提供了系统中活动实体的高级概述,它们的功能是什么以及它们如何交互。然后可以使用不同的类(使用 MVC、添加接口等)来实现该图。UML 图是实现的初始点,但实现并不(而且大多数时候)不应该完全如图所示(因为那为什么要实现?只是从图中生成)。

于 2012-12-06T08:26:57.337 回答