Como parte de las dependencias que tiene el proyecto en el que estoy trabajando, utilizamos varios servicios básicos. Estos servicios, a los que no podemos hacer grandes cambios, son un gran desastre. Dependiendo del método que invoquemos, necesitamos convertir nuestros parámetros (y valores de retorno) a diferentes codificaciones, configuraciones regionales y zonas horarias.
Como generamos estos parámetros en varios lugares en nuestro propio código, realizamos estas conversiones en varios lugares. Algunas veces donde los generamos, antes de pasarlos a nuestro lado; algunas veces justo antes de invocar el método en el servicio principal. Entonces, el desorden se está extendiendo por todo nuestro código, y quiero introducir una capa para aislarlo.
Mi pregunta es cuál es el mejor enfoque para eso. Inicialmente pensé en crear un servicio / método correspondiente a cada servicio / método que necesitamos usar. Estos métodos simplemente realizarían la conversión, delegarían a los servicios centrales y realizarían la conversión del valor de retorno. Pero esto parece de alguna manera difícil de manejar.
Entonces pensé en usar anotaciones, pero no estoy completamente seguro de cómo usarlas. Y como lo entiendo, idealmente necesitaría anotar el método invocado. Por ejemplo, podría anotar los parámetros con @converToUtc
, y hacer la conversión en la implementación de la anotación. ¿Es esto correcto? Por supuesto, esto es difícil porque no es nuestro código y romperá el código actualmente usando esos métodos en proyectos distintos al nuestro.
¿Cuál es el mejor enfoque para esta situación?