Sie sind auf Seite 1von 3

MTI. Manuel Morales Amador.

Algoritmos I

Unidad IV

DISEO ORIENTADO A OBJETOS


4.1 Introduccin
El Diseo orientado a objetos es una fase de la metodologa orientada a objetos para el desarrollo de Software. Su uso induce a los programadores a pensar en trminos de objetos, en vez de procedimientos, cuando planifican su cdigo. Un objeto agrupa datos encapsulados y procedimientos para representar una entidad. La 'interfaz del objeto', esto es, las formas de interactuar con el objeto, tambin es definida en esta etapa. Un programa orientado a objetos es descrito por la interaccin de esos objetos. El diseo orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de negocio que fue identificado y documentado durante el anlisis orientado a objetos. En el paradigma de programacin orientada a objetos (POO, o bien OOP en ingls), un objeto se define como la unidad que en tiempo de ejecucin realiza las tareas de un programa. Tambin a un nivel ms bsico se define como la instancia de una clase. Estos objetos interactan unos con otros, en contraposicin a la visin tradicional en la cual un programa es una coleccin de subrutinas (funciones o procedimientos), o simplemente una lista de instrucciones para el computador. Cada objeto es capaz de recibir mensajes, procesar datos y enviar mensajes a otros objetos de manera similar a un servicio. En el mundo de la programacin orientada a objetos (POO), un objeto es el resultado de la instanciacin de una clase. Una clase es el anteproyecto que ofrece la funcionalidad en ella definida, pero sta queda implementada slo al crear una instancia de la clase, en la forma de un objeto. Por ejemplo: dado un plano para construir sillas (una clase de nombre clase_silla), entonces una silla concreta, en la que podemos sentarnos, construida a partir de este plano, sera un objeto de clase_silla. Es posible crear (construir) mltiples objetos (sillas) utilizando la definicin de la clase (plano) anterior. Los conceptos de clase y objetos son anlogos a los de tipo de datos y variable, es decir, definida una clase podemos crear objetos de esa clase, igual que disponiendo de un determinado tipo de dato (por ejemplo el tipo entero), podemos definir variables de dicho tipo: int a,b; ( donde 'int' es un tipo de dato y 'a' y 'b' son variables de tipo entero con las que podemos operar)
34

MTI. Manuel Morales Amador.

Algoritmos I

Para utilizar la funcionalidad definida en una clase en particular (salvo en las clases abstractas), primeramente es necesario crear un objeto de esa clase. De la misma manera para una persona que desea sentarse, las especificaciones para construir una silla sern de poca utilidad; lo que se necesita es una silla real construida a partir de esas especificaciones. Siguiendo con la analoga anterior, tambin se puede decir que para hacer operaciones aritmticas, de nada sirve por s solo el tipo entero (int); para ello necesitamos variables (o constantes) con las que podamos operar

4.2 Conceptos Bsicos 4.2.1 Tipos Abstractos


Con mucha frecuencia se utilizan los trminos TDA y Abstraccin de Datos de manera equivalente, y esto es debido a la similitud e interdependencia de ambos. Sin embargo, es importante definir por separado los dos conceptos. Los Lenguajes de Programacin Orientados a Objetos son lenguajes formados por diferentes mtodos o funciones y que son llamados en el orden en que el programa lo requiere, o el usuario lo desea. La abstraccin de datos consiste en ocultar las caractersticas de un objeto y obviarlas, de manera que solamente utilizamos el nombre del objeto en nuestro programa. Esto es similar a una situacin de la vida cotidiana. Cuando yo digo la palabra perro, usted no necesita que yo le diga lo que hace el perro. Usted ya sabe la forma que tiene un perro y tambin sabe que los perros ladran. De manera que yo abstraigo todas las caractersticas de todos los perros en un solo trmino, al cual llamo perro. A esto se le llama Abstraccin y es un concepto muy til en la programacin, ya que un usuario no necesita mencionar todas las caractersticas y funciones de un objeto cada vez que ste se utiliza, sino que son declaradas por separado en el programa y simplemente se utiliza el trmino abstracto (perro) para mencionarlo. En el ejemplo anterior, perro es un Tipo de Dato Abstracto y todo el proceso de definirlo, implementarlo y mencionarlo es a lo que llamamos Abstraccin de Datos

4.2.2 Identidad de Objetos


La identidad es la propiedad que permite a un objeto diferenciarse de otros. Generalmente esta propiedad es tal, que da nombre al objeto. Tomemos por ejemplo el "verde" como un objeto concreto de una clase color; la propiedad que da identidad nica a este objeto es precisamente su "color" verde. Tanto es as que para nosotros no
35

MTI. Manuel Morales Amador.

Algoritmos I

tiene sentido usar otro nombre para el objeto que no sea el valor de la propiedad que lo identifica. En programacin la identidad de los objetos sirve para comparar si dos objetos son iguales o no. No es raro encontrar que en muchos lenguajes de programacin la identidad de un objeto est determinada por la direccin de memoria de la computadora en la que se encuentra el objeto, pero este comportamiento puede ser variado redefiniendo la identidad del objeto a otra propiedad.

4.2.3 Generalizacin, Herencia


La generalizacin es el tipo de Interrelacin que existe entre un tipo de entidad y los tipos de entidad ms especficos que dependen de l. Aqu se distingue un supertipo del cual dependen dos o ms subtipos. El concepto de herencia define otro tipo de relacin entre clases (generalizacin) donde una clase comparte estructura y/o comportamiento con una o ms clases. El trmino superclase se refiere a la clase que guarda la informacin comn, mientras que el trmino subclase se refiere a cada uno de los descendientes de la superclase. A partir de las relaciones de generalizacin se crea una jerarqua de abstraccin en la cual una subclase puede heredar de una o ms superclases. Es por sto que a la herencia tambin se le suele denominar jerarqua ``es una'' o ``clase de''. Una subclase hereda todos los atributos, operaciones y relaciones definidos en alguna de sus superclases, de forma que los atributos y operaciones comunes se definen en el nivel ms alto de la jerarqua. Las subclases se pueden ampliar (especializar) con atributos y operaciones adicionales, que se aplican slo a ese nivel de la jerarqua. Adems una subclase puede tener su propia implementacin de una operacin de la superclase (polimorfismo). Ya que la herencia no es una relacin entre objetos diferentes, este tipo de relaciones no se nombra, no se utilizan roles, ni se expresa multiplicidad, utilizndose la relacin generalizacin sin adornos.

36

Das könnte Ihnen auch gefallen