Можно ли вызвать абстрактный конструктор одним методом, а затем передать его каким-либо другим методам, который каждый из них перенесет новый объект в определенные подклассы? То есть,Запуск абстрактного конструктора, затем отбрасывание на подклассы
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()
мог использовать их в правильном конструктору, но это кажется довольно беспорядочным, и это будет означать, что каждый метод создания должен будет одинаково проверять одно и то же исключение и делать то же самое с этим, что звучит точно так же, как в ситуации, когда вы должны попытаться передать другой метод другому аутсорсингу!
Меня интересует практическая точка зрения - я хочу, чтобы мой код был аккуратным и читаемым, но также с теоретической точки зрения, действительно ли это возможно? Поэтому, даже если ответ отрицательный, вы можете объяснить, почему?
ОК, спасибо. Это немного очистило абстрактные классы в моей голове - я думаю, я понимаю, почему невозможно делать то, что я просил. – DenverCoder8