根据枚举类型调用特定方法?
2022-09-05 00:18:22
以下是我问题的一个抽象示例:我有一个具有类型()的通用类()。所有对象应仅按品牌不同,并且基于此品牌应以不同的方式处理。Car
brand
此类的所有对象都收集在服务类的列表中。服务应对整个列表执行例程,这基本相同。两者之间只有一个函数调用应该不同。
基于此类型,我想调用不同的方法:目前,我断言枚举类型的等于,并根据结果调用不同的方法。但这有点丑陋,我想知道是否有更好的解决方案?
class Car {
public enum Brand {
BMW, AUDI;
}
private Brand brand;
specificMeth1();
specificMeth2();
}
class Service {
List<Car> bmw;
List<Car> Audi;
processCar() {
processList(bmw);
processList(audi);
}
processList(List<Car> list) {
for (Car car : list) {
if (car.getBrand.equals(Brand.BMW)) {
specificMeth1();
} else {
specificMeth2();
}
}
}
}