miércoles, 30 de noviembre de 2011

Modelado de objetos

Quienes han trabajado con lenguajes de programación orientados a objetos, deben estar familiarizados con los términos y conceptos inherentes a ellos. El éxito de este tipo de lenguajes radica en la alta posibilidad de reutilizar el código. Además la vida real esa formada por objetos, que podemos convertir en objetos virtuales, con representación digital.

Desde que empecé a programar, los objetos han sido el paradigma más revolucionario con el cual he tenido que tratar…

Objetos

Ya hemos comentado que dentro de una aplicación para el iPad, que emplea el patrón MVC, existen solo tres tipos de roles; esto quiere decir que nuestro código solo puede estar en alguna de estas capas y que al estar en alguna de ellas, tendrá una función y deberá seguir ciertas reglas.

Dentro de la capa Model, hay objetos que no dependen de vistas o de controladores; estos objetos encapsulan los datos que administra nuestra aplicación. Las vistas y los controladores, deben poder acceder a ellos, sin que dependan de estos.

Un objeto puede ser un producto, un vendedor, un almacén, una factura, un cliente, etc. Estos objetos tiene características que los describen, a estas características se les denomina Atributos; algunos de estos objetos se relacionan con otros, por ejemplo cuando un producto está en un almacén o cuando un vendedor lo vende y pasa a formar parte de la factura de un cliente.

La definición de un objeto se llama clase y cuando creamos una copia del objeto a partir de esa definición se dice que hemos creado una instancia.

 

Entidades

Los objetos dentro de la capa del Model se denominan Entidades, y son objetos modelo que contienen los atributos. Cuando codificamos una aplicación que presenta una lista de productos, con algunos de sus principales atributos, se dice que cada fila dentro de la lista corresponde a una instancia del producto y las columnas de nuestra lista son atributos que tiene esta entidad.

 

Relaciones

Dentro de los atributos de una entidad encontraremos algunas que son relaciones de este objeto con otros dentro del Model. Por ejemplo cuando un producto está en un almacén, el almacén tiene una lista de los productos que están en él y el producto un atributo que nos dice en que almacén se encuentra.

A partir de este ejemplo podemos decir que el almacén tiene una relación de uno a muchos (productos) y que el producto una relación de uno a uno (solo puede estar físicamente en un almacén); sin embargo si este producto puede ser surtido por ms de un proveedor, entonces la relación del proveedor con este producto podría ser de uno a muchos.

 

Acceso a las propiedades

Ya hemos mencionado que las vistas y los controladores deben ser independientes, con respecto a las entidades en el model.

Para poder acceder a los datos, se emplea un mecanismo de llave-valor. Las llaves son empleadas por las vistas o por los controladores, para acceder a los valores, esa lleva puede ser obtenida de forma indirecta o puede ser derivada.

Por ejemplo podemos obtener el nombre de un producto, usando la llave “nombre”, si la instancia del objeto contiene un método o atributo llamado de esa manera, entonces podremos acceder al valor, de lo contrario se obtendrá un error.

Los valores del atributo son de un tipo específico, por ejemplo el atributo “nombre” podría ser NSString, de esta forma el valor que se obtendría al acceder con este mecanismo de llaves, sería un objeto de tipo NSString.

Para legar a cualquier valor se emplean rutas de llave, que son palabras separados por puntos las cuales nos permiten formar una ruta para acceder a cualquier atributo y obtener su valor. Por ejemplo para continuar con nuestro ejemplo del párrafo anterior, usaríamos producto.nombre

Algunas propiedades podrían no tener ningún valor, y esto no es considerado un error.

Comentario final

Una vez que hemos comprendido el modelado de objetos, es necesario comprender los patrones de diseño, puesto que son los mecanismos probados para resolver los problemas comunes que encontramos.

Frases de manzanas: “The apple does not fall far from the tree” Proverbios.

No hay comentarios:

Publicar un comentario