Kodama-Communication: Aplicativo de Comunicación para usuarios con Limitación Motriz y Linguistica Utilizando Imágenes

Bitacora de mi PFC

Kodama – Arquitectura del Driver (Nikko)

with 3 comments

Hola a todos, en esta entrada os muestro el diagrama de clases del driver de Kodama (a partir de ahora Nikko) en el que hemos estado trabajando Florentino y yo.

Diagrama de clases Nikko

A partir clase ControlAdapter se podrán añadir nuevos dispositivos simplemente heredando de ella. Para lanzar un evento basta con crear un objeto de tipo ControlEvent y lanzarlo mediante fireEvent().

El evento se irá propagando hasta llegar a la clase Application donde según el tipo de evento que sea,  se ejecutará cierto código u otro.

Si hay alguna duda, tanto Florentino como yo intentaremos resolverla.

Un saludo,

Daniel.

Edit: Se ha modificado el diagrama UML. La versión anterior está aquí

Anuncios

Written by dafero

24 marzo 2010 a 8:56

Publicado en General

Tagged with

3 comentarios

Subscribe to comments with RSS.

  1. […] Marzo, 2010 in Uncategorized Dani ha publicado en el blog de Kodama-Communication el diseño de Nikko, el driver de reconocimiento de movimiento que utilizaremos en las aplicaciones […]

    • Hola a todos,

      Un par de cosillas. Igual no lo estoy viendo claro (es lo que tienen los diagramas 🙂 ), pero por lo que entiendo, de las clases que tenéis en el diagrama, algunas son parte del framework y otras son instancias a modo de ejemplo de lo que implementaría el que adapte el framework a una aplicación en concreto, ¿es así? De ser así, entiendo que Application es parte de la aplicación que un tercero implementaría utilizando el framework para la conectividad de dispositivos. Si esto es así, mejor cambiad de colores las clases que son puramente del framework para que se distingan.
      Por otro lado, tenemos el interface ControlListener y por otro lado, la clase que lo implementa ControlListenerAdapter. ¿Qué hace esta segunda? En el diagrama se cita que “Para poder suscribirse a eventos hay que extender esta clase”. Con Control y controlAdapter sucede lo mismo. Si las clases están para ahorrar trabajo al desarrollador, ok, pero nunca obligándole a utilizarlas (que extenderla sea una alternativa que me ahorre trabajo a la opción de implementar directamente la interfaz). Es decir, hay que tener cuidado de manejarlas siempre a través de la interfaz que cumplen, porque si, dado que no hay herencia múltiple en Java, restringiríamos alternativas como reutilizar una clase sensor que viene ya implementada pero que hereda de otra clase propietaria. Vamos, que en el desarrollo de frameworks, si se puede usar un interfaz en lugar de extender una clase, siempre será mucho mejor. Si le dáis una vuelta de tuerca más a esto, se llega a la filosofía POJO (Plain Old Java Object) según la cual debería evitarse que las clases tengan que implementar interfaces concretas, dado que las ata al entorno, trasladando los chequeos de tipos a tiempo real mediante reflectividad. Esto es lo que básicamente hace Spring, pero las ventajas de esto son muy discutibles.

      Bueno, ahí mis 5 céntimos 

      Lanvin

      25 marzo 2010 at 15:55

      • Hola Lanvín,

        sí, la idea de poner la clase Applicacion era la de representar como puede enlazar un tercero su aplicación con Nikko.
        La verdad es que tienes razón y quedaría mejor haberla puesto en otro color y separada de alguna manera del driver en sí.

        Respecto a lo de la clase Adapter que nos comentas, sí que lo hemos hecho para facilitar la tarea al desarrollador. La clase adaptadora la metemos porque en la mayoría de los sitios donde nos informamos recomendaban hacerlo cuando se usa el patrón Observer, por dar más facilidades al programador, pero en ningún momento obligamos a heredar de Adapter. ControlListenerAdapter en realidad es una clase de conveniencia (como ControlAdapter) para no obligar a tener que implementar todos los métodos de la interfaz listener.

        Es cierto que el comentario del diagrama da pie a pensar que es OBLIGATORIO. Voy a modificarlo a ver si queda más claro.

        Un saludo y muchas gracias por comentar,
        Florentino y Daniel.

        dafero

        26 marzo 2010 at 11:25


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: