2016-08-11 8 views
0

は、時々私は、このパターンを分割するための一般的な戦略があります Javaで多すぎるジェネリック型のクラスを分割することは可能ですか?

class C<T1, T2, T2, T3, T4, T5> { 
... 
} 

あまりにも多くの一般的な種類のいくつかのクラスを書いてしまいましたか?

+1

はい、分解と呼ばれます。分解する方法は、ソフトウェアの要件によって異なります。私たちが知っている限り、これらのジェネリック型パラメータのいくつかは必要ないかもしれません。あなたの状況についてより多くの文脈を与えるべきです –

+0

ここに手掛かりがあります:_You_は型パラメータが多すぎると言いました。あなたが書き終わったばかりのクラスが、あなたの頭の中で新鮮であると思うなら、タイプパラメータが多すぎる、メソッドが多すぎる、インスタンス変数が多すぎる、状態が多すぎる、コードが多すぎるなどの理由があるおそらく誰かがそれを読んで欲しいと思っているものが多すぎます。 –

答えて

0

は、クラスの別のセットを作成します:あなたはCを使用していた別の場所でなど、C2<T2>

C3<T3, T4>C1<T1>を、あなたは、これらのクラスの個々のサブセットを参照する羽目になる。代わりに:

C<String, Integer, Whatever, Thing, ...> x; 

あなたはあります:多くの種類のパラメータを持つ

C1<String> x; 
C2<Integer> y; 
C3<Whatever, Thing> z; 

クラスを最も可能性の高いgod class/objectの一例です。

+0

私はあなたの答えに同意するが、私はここでもっと多くの説明をする必要があると思う。ジェネリックスでは、メソッドのシグネチャを変更することができます。例えば、OPは 'getX'メソッドを必要とし、そのメソッドのシグネチャを知る必要があります。 – sprinter

関連する問題