다음은 내 문제의 추상적 인 예입니다. 일반 클래스 (Car
)의 유형이 (brand
)입니다. 모든 객체는 브랜드 별로만 다르고이 브랜드를 기반으로 다르게 처리되어야합니다.enum 유형을 기반으로 특정 메소드를 호출 하시겠습니까?
이 클래스의 모든 객체는 서비스 클래스 목록에 수집됩니다. 서비스는 이 대부분 인 루틴을 전체 목록에서 수행해야합니다. 사이에 하나의 함수 호출 만 달라야합니다.
이 형식을 기반으로 다른 메서드를 호출하고 싶습니다. 현재 열거 형에 대해 같음을 나타내고 결과에 따라 다른 메서드를 호출합니다. 그러나 이것은 좀 못생긴 것이고 이것에 대한 더 나은 해결책이 있는지 궁금합니다.
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();
}
}
}
}
Sidenote : '평등'을 사용할 필요가 없습니다.)'열거 형. 'car.getBrand() == Brand.BMW'는 잘 동작합니다. –