Antes de la introducción a los genéricos al lenguaje Java, habría escrito clases encapsulando colecciones-de-colecciones-de-colecciones. Por ejemplo:Para usar colecciones genéricas anidadas o clases intermedias personalizadas?
class Account {
private Map tradesByRegion; //KEY=Region, VALUE=TradeCollection
}
class TradeCollection {
private Map tradesByInstrument; //KEY=Instrument, Value=Trade
}
Por supuesto, con los genéricos, que sólo puede hacer:
class Account {
private Map<Region, Map<Instrument, Trade>> trades;
}
tiendo a optar ahora por la opción # 2 (sobre una versión generified de la opción # 1) porque esto significa que no termino con una proliferación de clases que existen únicamente con el propósito de envolver una colección. Pero tengo la molesta sensación de que este es un mal diseño (por ejemplo, cuántas colecciones anidadas debo usar antes de declarar nuevas clases). Opiniones?
He editado la pregunta para hacer claro que una opción post-generics # 1 aún sería segura, como lo haría con los mapas –