나는 이라는 추상적 인 클래스를 가지고 있는데, 하나의 메소드는 public int get(int x, int y)
이다.클래스 선언에 사용할 Input 인수를 어떻게 설정할 수 있습니까?
클래스 B
, C
, D
에는 모두 동일한 방법이 있으며 추상 클래스 A
까지 확장됩니다. 클래스 Car
에서
Car
생성자는
B
중 하나
C
,
D
클래스에서 사용할 수있는 결정하는 데 사용되어야 문자열 인수
type
를받습니다.
분명히 type
에 기반한 조건문을 if...else
에 사용하고 있습니다.
그래서 코드는 3 개 클래스 중 하나를 사용할 것인지 결정하는 것입니다 것처럼 내가 문자열 인수를 사용할 수있는 우아한 방법이 있나요
if(type.equals("B")){
A = new B();
} else if(type.equals("C")){
A = new C();
} //and so on..
처럼?
왜 이런 식으로 일하고 있습니까? 이것은 수업 과제의 요구 사항입니까? 그렇지 않다면 해결하려고하는 전체적인 문제에 대해 더 자세히 알려주고 코드로 해결하려는 방법에 대한 구체적인 내용은 알려주지 않아야합니다. 아마도이 문제를 해결할 수있는 완전히 다른 방법이있을 것입니다. –
아니요, 아무런 요구 사항이 없습니다. 나는 그 일을 할 수있는 방법이 있는지 궁금합니다. 다양한 클래스를 작성한 후에는 단일 메소드에서 많은 조건문을보고 싶지 않습니다. – user482594
이 디자인은 같은 일을하는보다 우아한 방법을 찾더라도 어지러운 냄새가납니다. 나는 당신이하려고하는 것을 추구하지 않고, 전반적인 디자인 문제를 해결하는 것이 더 낫다고 생각한다. 도움이 여전히 필요하다면 해결하려는 문제가 아니라 해결하려는 문제에 대한 자세한 정보가 필요합니다. 그래서 질문은 "나는 어떻게 더 좋은 kludge를 만들 수 있는가?"가 아니라 "어떻게이 kludge를 완전히 피할 수 있는가"가되어야한다. –