【发布时间】:2011-12-13 20:52:48
【问题描述】:
我有几种类型的车辆,例如卡车、轿车、面包车、摩托车。它们之间的共同点是它们都在移动,所以我将它委托给包含这些方法的移动类:
getSpeed()
setSpeed()
getDestination()
setDestination()
..
..
..
move()
有些车辆的移动方式与其他车辆不同,所以我为它制作了一个工厂设计模式。因此,如果它是汽车(卡车、轿车、货车),它将委托给 MoveCarImpl 类,或者如果它是摩托车,它将委托给 MoveBikeImpl 类。我的问题是。自行车和汽车具有几乎完全相同的 move() 算法。唯一的区别是,bike 算法在 move() 方法的末尾调用了 1 个附加方法,而 car 的 move() 算法没有。所以现在我在 MoveCarImpl 类和 MoveBikeImpl 类中有很多重复的代码。关于如何处理这个问题的任何想法?
【问题讨论】:
标签: java design-patterns factory-pattern delegation