You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Actualmente se requiere llamar diferentes clases por cada idioma del cual se requiere obtener el texto, teniendolo de esta manera, tendriamos que crear una clase por cada nuevo idioma que quisiéramos agregar. Number2Text converter = new SpanishNumber2Text(1);
Recomendación:
Seria mucho mas sencillo para los que implementen la funcionalidad y mucho mas mantenible hacer el llamado a una sola clase, la cual se le pase como primer parametro el idioma, si no se le pasa el parámetro del idioma entonces por defecto que el idioma sea español.
Number2Text converter = new Number2Text("es", 1); Number2Text converter = new Number2Text("en", 1);
Como recomendación seria utilizar internacionalización para crear este nuevo feature
Criterios de aceptación
Pruebas Unitarias.
Evidencias
The text was updated successfully, but these errors were encountered:
fjavier
changed the title
[FEATURE] -
[FEATURE] - Internacionalización.
Aug 13, 2020
fjavier
changed the title
[FEATURE] - Internacionalización.
[FEATURE] - Internacionalización como parámetro al objeto para identificar el idioma.
Aug 13, 2020
fjavier
changed the title
[FEATURE] - Internacionalización como parámetro al objeto para identificar el idioma.
Internacionalización como parámetro al objeto para identificar el idioma.
Aug 13, 2020
Me parece muy buena la idea de no tener que instanciar las implementaciones de los idiomas directamente. Number2Text es una clase abstracta, por lo tanto no la podemos instanciar, lo que sí podemos hacer es agregar métodos de fábrica estáticos en esta clase que representen cada idioma. Como el constructor de la clase tiene diferentes firmas (5 versiones en total), debemos alinear la firma de estos nuevos métodos estáticos con los constructores.
Hace poco @berroteran sugirió otra idea que me parece puede ser cubierta en esta historia: se debe invocar el método toText() para obtener el valor en letras y para simplificar aún más el código podrímos devolver directamente el texto y no una instancia del convertidor usando métodos estáticos de fábrica. Sólo hay un aspecto a considerar: el método toText tiene 4 firmas (una de ellas no tiene parámetros, lo que dejaría 3 en total) y sus parámetros deben ser incluídos en cada método estático para preservar la funcionalidad intacta. Esta idea hay que sopesarla porque se agregarían 2 parámetros y se tendrían que crear las combinaciones de uso con estos 2 parámetros lo que aumentaría la cantidad de firmas de los métodos estáticos.
A continuación las variantes usando el constructor Number2Text(long):
Cuando soportemos más idiomas (digamos unos 4), retomaría tu idea con un ligero ajuste, usar el object Locale para parametrizar el idioma y no un String.
Problema:
Actualmente se requiere llamar diferentes clases por cada idioma del cual se requiere obtener el texto, teniendolo de esta manera, tendriamos que crear una clase por cada nuevo idioma que quisiéramos agregar.
Number2Text converter = new SpanishNumber2Text(1);
Recomendación:
Seria mucho mas sencillo para los que implementen la funcionalidad y mucho mas mantenible hacer el llamado a una sola clase, la cual se le pase como primer parametro el idioma, si no se le pasa el parámetro del idioma entonces por defecto que el idioma sea español.
Number2Text converter = new Number2Text("es", 1);
Number2Text converter = new Number2Text("en", 1);
Como recomendación seria utilizar internacionalización para crear este nuevo feature
Criterios de aceptación
The text was updated successfully, but these errors were encountered: