私は、抽象クラスA
を1つのメソッドpublic int get(int x, int y)
と呼んでいます。クラス宣言で使用されるInput引数はどのように設定できますか?
クラスB
、C
、D
はすべて同じで、抽象クラスA
に拡張された1つのメソッドを持っています。クラスCar
で
Car
コンストラクタは
B
の1、
C
、
D
はクラスで使用されなければならないかを決定するために使用されるべき文字列引数
type
を受けます。
明らかに、私はtype
に基づいてif...else
条件文を使用しています。
ので、コードが
if(type.equals("B")){
A = new B();
} else if(type.equals("C")){
A = new C();
} //and so on..
のように見える、私はそれが3クラスの一つを使用するかを決定することであると同じように文字列引数を使用することができます任意のエレガントな方法はありますか?
なぜこのようなことをしていますか?これはクラス割り当ての要件ですか?そうでない場合は、解決しようとしている全体的な問題について、コードで解決しようとしている方法の詳細を教えてください。おそらく、これに取り組むには完全に異なる、より良い方法があります。 –
いいえ、要件はありません、私はちょうどそれを行う方法があるのだろうかと思っています。さまざまなクラスを作成した後、単一のメソッドで多くの条件文を見たくないだけです。 – user482594
同じデザインをより洗練された方法で見つけたとしても、このデザインは意地悪な香りです。私は、あなたがしようとしていることを追求しなくてもいいし、代わりに全体的な設計の問題を解決する方が良いと思う。まだ援助が必要な場合は、どのような問題を解決しようとしているのではなく、解決しようとしている問題に関する詳細情報が必要です。だから問題は「どうすればよりよいkludgeを作ることができるのか」ではなく、「どのようにこのkludgeを完全に避けることができるか」である。 –