2016-08-11 68 views
0

有时候,我结束了太多的泛型类型是否有可能在Java中使用泛型类型来分解类?

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

是否有打破这种模式的总体战略写一些类?

+1

是的,这就是所谓的分解。你如何分解取决于你的软件的要求。对于我们所知道的,您可能甚至不需要其中的一些泛型类型参数。你应该给出更多关于你的情况的背景 –

+0

这里有一个线索:_你说它有太多的类型参数。如果_you_认为你刚写完的一个类 - 在你的脑海里还是新鲜的 - 有太多的类型参数,太多的方法,太多的实例变量,太多的状态,太多的代码行等等,那么它可能有_waaaaay_太多的东西_else_想要阅读它。 –

回答

0

创建备用的一组类:你在哪里使用CC1<T1>C2<T2>C3<T3, T4>

在不同的地方,你最终会提到这些类的个别子。相反的:

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

你必须:

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

与许多类型参数类是最有可能的一个god class/object的例子。

+0

尽管我同意你的回答,但我认为你需要在这里给出更多的解释。泛型允许方法签名更改您的解决方案不适用的方法签名。例如,OP可能需要'getX'方法,并需要知道它的签名。 – sprinter

相关问题