하나의 메소드에서 추상 생성자를 호출 한 다음이를 다른 하위 클래스로 전달할 수있는 다른 메소드로 전달할 수 있습니까? 즉,이 피해 갈 수추상 생성자를 실행 한 다음 하위 클래스로 캐스팅
public AbstractClass createNewAbstractClass() {
//do lots of checks that are the same for each sub class,
//including geting and checking each variable,
//and an exception thrown by the constructor.
AbstractClass abstractClassObject = new AbstractClass(var1, ...);
return abstractClassObject;
}
public SubClassOne createSubClassOneObject() {
SubClassOne subClassOneObject = (SubClassOne)createNewAbstractClass(var1,..);
return subClassOneObject;
}
public SubClassTwo createSubClassTwoObject() { ...
한 가지 방법은 방법 createSubClassNObject()
오른쪽 생성자에서 사용할 수 있도록, 얻을 하나의 방법에있는 모든 변수를 확인하고 배열을 반환하는 것입니다,하지만 그것은 꽤 혼란스러워 보입니다. 그리고 그것은 각각의 create 메소드가 동일한 예외를 동일한 방식으로 검사하고 그것에 대해 동일한 작업을 수행해야한다는 것을 의미합니다. 이는 다른 메소드로 아웃소싱하려고해야하는 상황과 똑같습니다.
나는 실용적인 관점에서 흥미 롭다. 나는 내 코드를 깔끔하고 읽기 쉽도록하려고하지만, 이론적 인 관점에서 바라지 만, 실제로 가능한가? 따라서 대답이 '아니오'인 경우에도 이유를 설명해 주시겠습니까?
좋습니다. 감사합니다. 그것은 내 머리 속에서 추상적 인 수업을 조금이라도 정리했습니다 - 제가 왜 묻고있는 것을 할 수 없는지 이해할 수 있다고 생각합니다. – DenverCoder8