我正在建立一个舰队单位的gps系统,目前,我需要弄清楚如何连接我的对象。
下面是一个场景:
因此,如果我有以下对象:
FleetUnit,GpsDevice,Engine,FuelFlowMeter
我想找到一种不需要循环依赖的方式来连接它们。
如果FleetUnit对象有GpsDevice对象列表和Engine对象列表,而GpsDevice对象有FuelFlowMeter列表,FuelFlowMeter引用GpsDevice对象和Engine对象,我认为循环依赖项太多,设计不干净。
你能建议我如何处理这样的场景,在这样的场景中,很少有对象表现得像一个图形?
发布于 2018-01-31 19:22:15
这里有几件可能有帮助的事情。考虑到你的问题,有一件事让事情变得复杂,那就是你有一些GPS和燃油表能够支持两个引擎,而其他的则不能。如果你的目标是盘点这些,那么这些细节可能很重要,但我猜它并不重要。我认为你真正关心的是:每台发动机的燃料使用量是多少,他们可能做了多少工作(距离、海拔等)。
我指出这一点,因为这是一个简单得多的建模问题。因此,要做到这一点,您需要以下(粗糙的)实体:
FleetUnitEngineFuel ReadingLocation Information关于OO是如何解释的,我面临的一个大问题是,解释中的例子要么暗示,要么说明它们应该代表真实世界中的具体事物,比如猫、狗或树。事实并非如此,java程序中的大多数类都不代表真实世界的实体。
如果出于某种原因,您的应用程序必须知道Fuel Reading x与GPS单元Y相关联,则可以将其添加到模型中。这里的关键是您应该根据需要如何使用它们来设计类,而不是基于问题域中的具体实体。
https://softwareengineering.stackexchange.com/questions/365050
复制相似问题