首页 > 解决方案 > 服务类应该是类图的一部分吗?

问题描述

比方说,我们想建立一些像Ticket Booking这样的系统(订票不是这里的关键,这只是一个例子)

所以我们有一个用户类,类等

我们还有一个TicketService类,它提供了bookTicket () cancelTicket () 等方法

在类图中,是否应该包含 TicketService?

如果没有, bookTicket() 或 cancelTicket() 应该显示在类图中的什么位置,在 Ticket 类或 User 类中(因为用户创建了票证)

标签: javaclassumlclass-diagram

解决方案


这取决于你想代表什么。如果您想要在类图中忠实地表示您的代码,那么可以;如果您只是想解释您的业务领域的逻辑(即领域中的业务实体)并且您不想要混乱,那么可以放弃服务类。这是基于主观/意见的,取决于您需要做什么。

如果你想避免服务类但你想用行为来表示域的逻辑,那么你可以简单地在 Ticket 类中添加一个“book()”和“cancel()”操作。这将是面向对象的标准方法——即将行为(和数据)封装在负责它的对象内。


推荐阅读