Roman Numerals Java kata

Siguiendo con la serie de katas, ahora toca la kata de los números romanos. Es simple, se trata de convertir de entero a romano y viceversa.

Para darle una vuelta de tuerca me he propuesto seguir los principios KISS y SOLID, que se recomienda tener en mente cuando refactoricemos. Y ya de paso me he propuesto implementar una Interfaz fluida basada en métodos estáticos:

  • convert(roman).toArabic();
  • convert(arabic).toRoman();

El video de la kata lo teneis en Youtube:

El código de la kata aquí: romannumerals-fluentinterface-solid.zip

Y por último un diagrama de clases que ilustra como el diseño respeta el diseño Open/Close, en tanto en cuanto fácilmente, añadiendo más subclases, podremos ampliar a tantos sistemas numéricos como queramos (Octal, Hexadecimal,…):

Class Diagram

String Calculator Java Kata

Con el fin de mejorar mi kunFu (mi TDD, mi Java, y mi oficio en general), pretendo hacer unas katas, y publicarlas aquí por si a alguien le interesa como las he resuelto, y se anima a resolverlas.

Me estoy basando en las katas de la web 12meses12katas (gracias @kinisoftware por tu esfuerzo en esta iniciativa!!).

La primera es StringCalculator, yo la he resuelto así:

El código os lo empaqueto aquí: String Calculator Java Kata. También lo podéis ver en el repo de Git Hub.

Espero que os divirtáis viéndolo  tanto como yo lo hice haciéndolo ( que sí, que me lo paso muy bien programando!!. Digo yo que no será tan raro, no? ;-P )

String Calculator Java Kata

In order to improve my kunFu (my TDD, my Java, and my work in general), I’m planning doing some katas, and publishing here. If somebody want to see how I solve them.

Based on 12meses12katas web (thanks @kinisoftware for your effort on this initiative!!).

The first one, String Calculator, I solved there:

I’ve packaged the code here: String Calculator Java Kata. And you can see immediately at Git Hub repo.

Hope you enjoy as much as I did programming it( sure, I enjoy pretty much programming!! I think that it isn’t so weird, is it? ;-P )