Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

La No Tan Nueva Programación Orientada a Objetos

Por Diana García

La Programación Orientada a Objetos, más que una forma distinta de programar, representa una manera diferente de pensar y de ver a un sistema desde el análisis y diseño del mismo. Toda una nueva filosofía de desarrollo, pensada en términos de un concepto tan simple que forma parte de la vida diaria de todos: el objeto.

Para quienes hemos estado ya desde hace tiempo sumergidos en el (a veces) oscuro mundo de la programación, implica dejar de ver los sistemas que desarrollamos como una futura parte de nuestras computadoras, para empezar a visualizarlos como una parte del mundo real llevado hasta ellas.

Es básico entender lo que en el mundo de la programación orientada a objetos representa la Clase, el Objeto, la Instancia, los Atributos y Métodos, ya que estos son los conceptos principales que la sustentan.

Pero además, es necesario conocer sus características principales, que lo llevan a ser un estilo de desarrollo que permite crear código reutilizable (es decir, que podremos utilizar en futuras implementaciones de sistemas). Dichas propiedades son: el Encapsulamiento, el Polimorfismo y la Herencia.

Es sumamente importante la forma en que llevamos el análisis y diseño para la creación de las estructuras de las clases de los sistemas, ya que de ello depende el aprovechamiento real de las bondades que el paradigma de la programación orientada a objetos nos puede dar. El no hacerlo de manera eficiente, podría llevarnos a ver nuestro desarrollo orientado a objetos, como un estilo más de programación modular, cuando su razón de ser no es esa.

Cada vez que diseñamos la estructura de una clase, es necesario crearla pensando en que será una librería más que utilizaremos en sistemas futuros. Se trata de crear líneas de código cada vez menos hechas a la medida... cada vez más universales.

Clases

La clase es un tipo de objeto. Para quienes estamos familiarizados ya con cuestiones de programación, podemos hacer la siguiente analogía: Una clase es como un tipo de dato creado por el usuario, pero, que además de tener ciertos campos (llamados atributos), cuenta también con un cierto comportamiento (métodos). En general, podemos crear una clase inspirados en cualquier objeto que esté a nuestro alrededor, como puede ser la silla en la que descansamos cómodamente y pensar en una clase llamada precisamente así, Silla. O bien, recordar nuestras mascotas favoritas y pensar en crear un nuevo tipo de objeto llamado Perro.

Atributos

Los atributos son todas aquellas características que le asociamos a un tipo de objeto (clase). Si por ejemplo, queremos definir los atributos de una clase llamada Perro, podemos especificar que son la raza, la edad, su color y el nombre del dueño, por mencionar solo algunos de ellos. Los atributos que asociamos a una clase, dependen en gran medida del uso que le daremos dentro del sistema que diseñamos actualmente, pero también pueden ser definidos pensando en futuras implementaciones.

Métodos

Los métodos representan todas aquellas acciones que puede realizar o se pueden llevar a cabo sobre un objeto de una clase. Así, por ejemplo, la clase Perro puede tener los métodos correr, comer, bañar y vacunar, por mencionar algunos de ellos. A nivel de implementación, estos métodos son segmentos de código similares a los procedimientos y funciones utilizadas en la programación modular.

Instancias - Objetos

Una Instancia es una ocurrencia de la clase y un Objeto es una instancia de una Clase específica... ¿Complejo? En realidad no lo es tanto.

Supongamos que existe una clase Silla. La silla del comedor que yo utilizo, es una instancia de esa clase, y por lo tanto, un objeto de tipo Silla. La silla que utiliza mi hermana es otra instancia de la misma clase y en consecuencia, otro objeto del mismo tipo.

Desde el punto de vista de la programación (es decir, a nivel de implementación), es posible que declare un objeto de un cierto tipo y posteriormente crear la instancia del mismo. La forma de hacerlo depende del lenguaje de programación que se esté utilizando.

Encapsulamiento

Toda clase tiene una serie de atributos y métodos asociados a ella, y todos ellos están encapsulados o contenidos dentro de la misma, de manera que son propiedad de dicha clase. Esos métodos y atributos pueden ser utilizados por otras clases sólo si la clase que los encapsula le brinda los permisos necesarios para ello.

Polimorfismo

Dos clases diferentes responden de forma distinta a un mismo mensaje. Esto quiere decir que dos clases que tengan un método con el mismo nombre, y que respondan al mismo tipo de mensaje (es decir, que reciba los mismo parámetros), ejecutarán acciones distintas. Por ejemplo, si tenemos las clases Persona y Gato, ambas responderán de manera distinta al mensaje "comunicar", de manera que la persona hablará y el gato maullará.

Herencia

Una clase puede heredar atributos y métodos de otra clase. Por ejemplo, si tengo una clase Persona, con los atributos nombre y dirección, puede heredar dichos atributos a otras clases, como puede ser Empleado, Cliente, Alumno, etc. Lo mismo podría ocurrir con sus métodos. De manera que la clase persona sería la clase padre y las clases Empleado, Cliente y Alumno, serían clases hijas.

Regresar