miércoles, 16 de marzo de 2011

Código autogenerado y comparación

Taller OOP
Para realizar un código autogenerado, tuve el problema que no encontré un software gratuito que generara código en Objective C, todos son comerciales, por lo tanto lo que hice es hacer el diagrama en Umbrello y que generara el código en C++ y tambien en Java, para ver las diferencias entre mi código y el código generado a base del diagrama.


Este es el diagrama que realizé en Umbrello
diagrama 1

Este es el diagrama que generó en base a código el xcode
diagrama 2


Podemos ver que es prácticamente igual así que ahora lo que hice en Umbrello es generar el código en base ahora al diagrama 1

Aquí tenemos el diagrama de secuencia


Para resaltar las diferencias decidí utilizar dos clases diferentes, entre ellas Bebida y Recomen.

Este es el código que generó en C++ para clase Bebida

Este es el código que generó en Java para clase Bebida

Este es el código que yo escribí en Objective C

Como diferencia podemos ver que en los códigos generados crean el uso de funciones especiales para definir propiedades, los cuales son get y set.
Según encontré en internet, get hace que puedas obtener el valor de la propiedad, esto quiere decir que lo puedes leer y set es para darle un valor a la propiedad, esto quiere decir que lo puedes escribir.

Este es el código que generó en C++ para clase Recomen

Este es el código que generó en Java para clase Recomen

Este es el código que yo escribí en Objective C












Aqui podemos encontrar la misma diferencia de las funciones de get y set en la propiedad y podemos ver tambien que en C++ crea la función initAttributes();


links de interes:
Getter y Setter en OOP
Umbrello

Cabe recalcar que esta comparación la estoy haciendo con otros lenguajes de programación ya que como comenté al principio, no encontré una herramienta que generara código en lenguaje Objective C en base a un diagrama.

1 comentario:

  1. Pues, le metiste el de secuencia pero apenas comentaste en ello :P Te pongo 7.

    ResponderEliminar