Oop 什么';设计火车和轨道对象之间关系的最佳方法是什么?
我在做一个视觉追踪火车的项目。我已经重构了火车、轨道和各自的绘图类之间的对象关系好几次了,我对它们中的任何一个都不满意。也许你们可以帮我 下面是我现在得到的对象的接口 轨道:Oop 什么';设计火车和轨道对象之间关系的最佳方法是什么?,oop,architecture,Oop,Architecture,我在做一个视觉追踪火车的项目。我已经重构了火车、轨道和各自的绘图类之间的对象关系好几次了,我对它们中的任何一个都不满意。也许你们可以帮我 下面是我现在得到的对象的接口 轨道: addControlPoint(点到点) getPointAtPosition(曲线上的浮动位置) getTangentAtPosition(曲线上的浮动位置) getMaxPosition() 轨道抽屉: setGraphicsContext(图形g) 绘制(轨道) 列车: 设置/获取轨道(轨道) 设置/获取跟
- addControlPoint(点到点)
- getPointAtPosition(曲线上的浮动位置)
- getTangentAtPosition(曲线上的浮动位置)
- getMaxPosition()
- setGraphicsContext(图形g)李>
- 绘制(轨道)李>
- 设置/获取轨道(轨道)
- 设置/获取跟踪位置(浮动位置)
- 设置/获取速度(整数速度)
- 向前移动(延迟时间)
- setGraphicsContext(图形g)
- 抽签(火车)
init() {
Tracks track = new Tracks();
track.addPoint( point1 );
track.addPoint( point2 );
track.addPoint( point3 );
Train train = new Train();
train.setTrack(track);
train.setPosition(0);
}
run() {
while (running) {
elapsedTime = calcTime();
update(elapsedTime);
Graphics g = getGraphics();
draw(g);
}
}
update(long elapsedTime) {
train.setSpeed(10);
train.moveForward(elapsedTime);
}
draw(Graphics g) {
trackDrawer.draw(track);
trainDrawer.draw(train);
}
以下是几个具体问题:
我的第一印象是
TrainDrawer
和TrackDrawer
是问题的根源,不应该存在
按照模型视图方法,列车和轨道都是模型实体,都没有另一个。如果你考虑了<代码> Draftsman <代码>对象(对应于“视图”),绘图员从轨道和火车中收集信息,并给出一个连贯的整体。你能不能再详细解释一下?