Web Analytics

Volvemos.


Ya había explicado un poco lo que quería montar. La cuestión es ´hacer un juego de estrategia por turnos, ya sea el tute o el colonization, eso importa poco.


Para esto y para programar cómodamente con unas buenas JUnits, orientando todo a pruebas, necesito separar por completo todos los componentes de la aplicación: Modelo, vista y controlador.


El modelo es un juego, su tablero, etc. El controlador se divide en controlador, acciones y comandos.


La vista para lo que tengo montado es sólo una interfaz que hay que implementar. Una cosa buena por un lado y mala por otro que tienen los componentes gráficos, es que todos son una jerarquía, siempre hay un padre de todos, el componente (View en android, ventana en Windows, Component en jwt, JComponent en Swing, Displayable en MIDp... Y todos heredan de él para ir pintandose y tener comportamientos básicos. 


Estos componentes se pueden decorar por herencia o reimplementar por completo, que viene a ser una decoración a lo burro. Lo malo está en que no los puedes encajar en tu diseño salvo con las decoraciones, esto es, tienes que heredar de uno de estos componentes que vienen ya pre definidos y añadirle tus métodos.


Al estar intentando crear una librería medianamente abstraida de las implementaciones y, debido sobre todo, a que intento trabajar con dos tipos de clientes (uno gráfico sobre el dispositivo final y uno de texto para las pruebas), no cabe más remedio que tener una interfaz que defina el contrato de lo que va a ser una vista en pantalla.


Así tengo una especie de Colaborator que también ahora leo que es un Aggregator, que hace del controlador que sabe de donde sale y viene todo, procesa eventos, instancia acciones y pide actualizaciones en las vistas.


Seguiremos otro día.


--
O quam cito transit gloria mundi.