抽象コンストラクタを1つのメソッドで呼び出すことは可能ですか?それを新しいメソッドを特定のサブクラスにキャストする別のメソッドに渡すことはできますか?つまり、これは方法createSubClassNObject()
が右コンストラクタでそれらを使用することができるように、配列にそれらを返す、その後、1つのメソッド内のすべての変数を取得してチェックすることですラウンドを取得する抽象コンストラクタを実行してからサブクラスにキャストする
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() { ...
一つの方法ですが、それは非常に乱雑に思えます。そして、それは、それぞれの作成メソッドが同じ例外を同じ方法でチェックし、同じことをしなければならないことを意味します。別のメソッドに委託しようとするべき状況のようです。
実践的な観点から私は興味があります。私は自分のコードをきれいで読みやすいものにしたいと思っていますが、理論的な観点からも、これは実際に可能ですか?答えがいいえでも、理由を説明できますか?
よろしくお願いいたします。それは私の頭の中の抽象クラスを少しクリアしました - なぜ私が求めていることをすることができないのか理解していると思います。 – DenverCoder8