Convenciones de nomenclatura específicas de versión de clase Java

10

Tengo que crear un adaptador entre dos software (simulación mecánica, no cs). Asumiendo que tenemos una clase llamada ThatThing. Tengo que manejar varias implementaciones específicas del proveedor. Estas versiones no tienen nombres significativos (a diferencia de eclipse helios, índigo, etc.).

1. ¿Cómo debo nombrar una clase que debería expresar el número de versión?

Me parece clase como ThatThing_3_6_Impl, ThatThing_3_7_Implbastante incómodo.

usuario802421
fuente

Respuestas:

20

Use un nombre de paquete diferente.

com.example.version36.ThatThing
com.example.version37.ThatThing

Esto le permite mantener todas las "cosas" para versiones específicas juntas.

Apache Commons Lang usó este formato cuando lanzó sus reescrituras de "versión 3".


Como necesita poder hacer referencia a ambas versiones en una sola clase, acortaría los nombres a:

ThatThing36
ThatThing37

En su caso, esto parece ser lo suficientemente descriptivo, y elimina lo feo Imply lo _'s.

Jeremy Heiler
fuente
Esto suena bien. Lo pensare. Aunque en el lugar en que se unen estas versiones, necesitamos usar un nombre completo para las referencias, ¿verdad?
user802421
¿Cómo se unen? ¿Estás usando inyección de dependencia? De cualquier manera, para responder a su pregunta, sí.
Jeremy Heiler
Tienen muchas versiones de modelos de datos que cambian entre versiones. Algunos subconjuntos específicos de características se están mezclando. No hay soporte de biblioteca en absoluto (por ejemplo, no di, no codegen). Esta es la historia de 11 años de evolución del software :(.
user802421
Triste. ¿Es posible que al version37.ThatThingextenderlo version36.ThatThingalivie algo del dolor?
Jeremy Heiler
Desafortunadamente, son estructuralmente diferentes y necesitan una transformación compleja. Es como un mapa de bits y un gráfico vectorial.
user802421
2

No importa mucho Elija una convención que exprese todo lo que necesita para expresar y quédese con ella.

Se puede usar ThatThing3_6para "That Thing 3.6".

compman
fuente