【发布时间】:2021-05-01 22:06:05
【问题描述】:
我正在为软件工程面试做准备,并发现在面试中了解面向对象设计是件好事。在我查看的所有 UML 图示例中,我无法确定方法的归属。例如,以下是航空公司预订系统的面向对象设计课程中的 UML 图之一。
我对这张图的主要问题是:
- 包含 addFlightSchedule() 方法的飞行类
- 包含 getFlights() 方法等的机场类
在这方面做了一些工作后,我总是有一个具有 addFlightSchedule() 方法的服务类(如 FlightScheduler 类),而 Flight 对象只是包含适用于航班的属性/方法的对象。那么,在面试的时候这样设计课程对吗?为什么所有在线 UML 图都将服务(操作)方法作为类本身的一部分?
【问题讨论】:
-
让我说清楚,你问为什么互联网上的一些随机 UML 图是用这种方式而不是其他方式编写的?
-
@Selvin 不。我在问为什么大多数 UML 图(在书籍和互联网中)都有以这种方式定义的类/方法,以及按照我描述的方式这样做是否有任何问题, .
-
问作者......你也写了所有的问题,现在大多数......好吧,随机也适合......所以现在我们有 我在问为什么随机 UML 图(在书籍和互联网中)有这样定义的类/方法 ...所以,我是对的
-
老实说,做你认为最好的事情。那里有很多意见,如果您要在某个地方工作,那么最好首先说明您打算如何设计它。如果他们问,请准备好解释你为什么使用它。归根结底,没有一种方法可以制作程序。一切都有它的优点和缺点。在设计软件时,您的工作是考虑特定实现的优点和缺点。我认为在设计软件时了解这一点可能更重要。
-
也许他们这样做是为了有更小的图表,把 Airport Class 想象成一个实体。然后您需要添加将导致存储库的服务类。我认为他们这样做是为了让事情变得更简单,但在实际实施中会有所不同。另外我认为这是一种学术观点,大多数专业和案例并不适用于现实生活场景。
标签: java uml class-diagram object-oriented-analysis ooad