java - 设计模式 : Reduce duplicate code from 2 methods that is almost the same in java

标签 java design-patterns factory-pattern delegation

我有几种类型的车辆,例如卡车、轿车、面包车、摩托车。它们之间的共同点是它们都会移动,因此我将其委托(delegate)给包含这些方法的移动类:

getSpeed()
setSpeed()
getDestination()
setDestination()
..
..
..
move()

有些车辆的移动方式与其他车辆不同,因此我为它制作了一个工厂设计模式。因此,如果它是汽车(卡车、轿车、面包车),它将委托(delegate)给 MoveCarImpl 类,或者如果它是摩托车,它将委托(delegate)给 MoveBikeImpl 类。我的问题是。自行车和汽车具有几乎完全相同的 move() 算法。唯一的区别是自行车算法在 move() 方法的末尾调用了 1 个附加方法,而汽车的 move() 算法则没有。所以现在我在 MoveCarImpl 类和 MoveBikeImpl 类中有很多重复的代码。关于如何处理这个问题的任何想法?

最佳答案

您可以使用自行车移动实现类扩展您的汽车移动实现类并覆盖移动方法。

关于java - 设计模式 : Reduce duplicate code from 2 methods that is almost the same in java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871600/

相关文章:

java - JPA EntityManager 没有被 Spring 4 注入(inject)

java - 强制开发人员使用Builder来构建实例

c# - 向类中的每个方法添加方法调用

php - 如何模拟对象工厂

C# 泛型和抽象工厂模式 - 或者做类似事情的某种方式

java - 返回列表的工厂模式

java - 字符检查

java - 如何比较两个数组中的每个整数

java - 正则表达式匹配带有或不带有某些单词的用户代理

java - 我们什么时候应该使用 Observer 和 Observable?