gpt4 book ai didi

java - 我应该用两种方法实现一个接口(interface)还是两个接口(interface)?

转载 作者:行者123 更新时间:2023-12-05 09:26:27 24 4
gpt4 key购买 nike

<分区>

我有两个性质相似但功能签名不同的类。我正在考虑是拥有两个接口(interface)还是拥有一个接口(interface)。让我举例说明:

方法一:两个接口(interface)

public interface RaceCar {

CompletableFuture<Double> drive(final Wheel arg1, Tactic tactic);

}

public interface Bus {

CompletableFuture<Double> drive(final String someOtherKey, final Controller arg2);
}

一个抽象类 AbstractCar 在两者之间共享逻辑:

public abstract AbstractCar { 
// Add shared logic here...
}

和实现。


public class RaceCarImpl extends AbstractCar implements RaceCar {
...
}


public class BusImpl extends AbstractCar implements Bus {
...
}

结果:2 个接口(interface)、1 个抽象、2 个实现 = 5 个文件。

方法二:一个接口(interface),两种方法

public interface Vehicle { 

CompletableFuture<Double> drive(final Wheel arg1, Tactic tactic);

CompletableFuture<Double> drive(final String someOtherKey, final Controller arg2);

}
public abstract AbstractVehicle implements Vehicle {
// Sharing code here
}
public class RaceCar extends AbstractVehicle { 

CompletableFuture<Double> drive(final Wheel arg1, Tactic tactic) {
// Implement this ...
}

CompletableFuture<Double> drive(final String someOtherKey, final Controller arg2) {
throw new IllegalStateException("Not implemented");
}

}


public class Bus extends AbstractVehicle {

CompletableFuture<Double> drive(final Wheel arg1, Tactic tactic) {
throw new IllegalStateException("Not implemented");
}

CompletableFuture<Double> drive(final String someOtherKey, final Controller arg2) {
// Implement this
}

}

结果:1​​ 个接口(interface)、1 个抽象、2 个实现 = 4 个文件。

判决

我认为拥有 1 个界面更好,因为它需要的文件更少。你有什么想法?

从长远来看,上述哪种方法会产生较少的技术债务?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com