如何为两个类创建共享 ID 空间?



我有两个类:发动机列车组(多单元(,两个类共享它们的ID空间,由名称和一系列id=<series>-<name>组成。

这是我的引擎类(它是抽象的,因为有引擎的子类型(柴油机,蒸汽机,...(:

public abstract class Engine extends RollingStock {
private String name;
private String series;
public Engine(int length, boolean couplingFront, boolean couplingBack, String name, String series) {
super(length, couplingFront, couplingBack);
this.name = name;
this.series = series;
}
}

这是我的火车组课程

public class Trainset extends RollingStock {
private String name;
private String series;
public Trainset(int length, boolean couplingFront, boolean couplingBack, String name, String series) {
super(length, couplingFront, couplingBack);
this.name = name;
this.series = series;
}
}

因此,这两个类都具有属性名称和系列。

现在,我创建了另一个类SharedIdSpace来确保它们使用相同的 ID 空间。但是,我不知道我应该如何巧妙地实现这一点......

目前你可以创建一个新的基类:

class IdSpaceRollingStock extends RollingStock {
protected final String name;
protected final String series;
public IdSpaceRollingStock (int length, boolean couplingFront, boolean couplingBack,
String name, String series) {
super(length, couplingFront, couplingBack);
this.name = name;
this.series = series;
}
...
}
public abstract class Engine extends IdSpaceRollingStock {
public abstract class Trainset extends IdSpaceRollingStock {

这可能是一个临时解决方案,因为它使用人工类向继承结构收费。

但是,它是最小的解决方案,具有最少的附加代码。覆盖等于和哈希代码在那里。

最新更新