Alguien pasó por esto antes? Conocimiento del API
En el capítulo anterior se había discutido las ventajas de traer el dinero como un tipo en vez de tratarlo solo como tipo primitivo. Pero será que nadie todavía paso por ese problema? El arte de “reinventar la rueda” además de ser muy costosa, ya que demanda mucho tiempo, pasa a ser muy peligrosa ya que se tiende a pasar por los mismos problemas que un programador con mas experiencia ya enfrentó. Una famosa frase de una conocida escritora brasilera Clarice Lispector: "Quien camina solo puede hasta llegar más rápido, pero aquel que va acompañado, con seguridad va ir más lejos."*, osea, la mejor estrategia es unirse a un framework que ya hace eso, así es posible intercambiar experiencias con programadores que ya pasaron por eso, no repetir los mismos errores, contribuir con esa herramienta, de esta forma, quedará cada vez mas robusta y con menos errores.
Por lo tanto, se puede unir a una solución preferida para desarrollar el tipo de dinero. Como encarar con este tipo de problema es cada vez más común en el desarrollo de software, que pasa si cada uno utiliza una solución específica? Por muchas razones se puede optar por una solución, por ejemplo, una buena documentación, licencia, razones comerciales, etc. Asi como integrar con cada una de ellas? En caso se escoja una es posible cambiar para otra? Sabemos que quedar enganchado en un vendedor no es algo bueno para los negocios. Con ese objetivo nace una especificación Java para afrontar el tipo dinero, la JSR 354. Esta tiene como principal objetivo tratar dinero.
Una vez definiendo una interface común, cada empresa o desarrollador podrá optar por su solución favorita o cambiarla de forma transparente, para eso, basta que esa API implemente esa especificación. Ese comportamiento es bien semejante en un cambio de base de datos relacional en el mundo Java, en caso que la aplicación contenga una especificación y use interfaces de JDBC, se puede cambiar de base de datos tranquilamente, para eso, es necesario solo cambiar el driver, implementación, y todo continuará funcionando desde que tu aplicación use solo las interfaces.
Recordando el concepto de dinero, de forma resumida, dinero es compuesto por dos partes, la parte del valor que es la cantidad, asi representada de forma numérica, pero solo con ese valor no conseguimos hacer mucha cosa, necesitamos de la moneda. La moneda representa el “sistema de dinero” de uso común, especialmente dentro de una nación, siguiendo esa definición el real, nuevo sol, yen, peso, dólar y euros son tipos de monedas.