Академический Документы
Профессиональный Документы
Культура Документы
Encapsulamiento :
pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar
la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultacin, principalmente porque se suelen emplear conjuntamente.
La encapsulacin: Se refiere a la capacidad de agrupar y condensar en un entorno con lmites biendefinidos distintos elementos. Cuando hablemos de encapsulacin en general siempre nos
referiremos, pues, a encapsulacin abstracta. De manera informal, primero generalizamos (la
abstraccin) y luego decimos: la generalizacin est bien, pero dentro de un cierto orden: hay que
poner lmites (la encapsulacin), y dentro de esos lmites vamos a meter, a saco, todo lo
relacionado con lo abstrado: no slo datos, sino tambin mtodos, comportamientos, etc.
Por un lado es una abstraccin pues, de acuerdo con la definicin establecida anteriormente, es en
sta donde se definen las propiedades y atributos genricos de determinados objetos con
caractersticas comunes (recordemos el ejemplo de la sala de cine). La Clase es, por otro lado, una
encapsulacin porque constituye una cpsula o saco que encierra y amalgama de forma clara
tanto los datos de que constan los objetos como los procedimientos que permiten manipularlos.
Las Clases se constituyen, as, en abstracciones encapsuladas.
Concepto de polimorfismo
Esta caracterstica permite definir distintos comportamientos para un mtodo dependiendo de la
clase sobre la que se realice la implementacin. En todo momento tenemos un nico medio de
acceso, sin embargo se podr acceder a mtodos distintos.
Veamos el siguiente ejemplo, en el que se define una clase forma de la que se heredan las clases
crculo y cuadrado.
La clase forma define los mtodos dibujar y borrar. En la definicin de estos mtodos se
implementar el cdigo comn a todos los objetos de la clase. Sin embargo cuando definamos las
clases hijas, crculo y cuadrado, ser necesario modificar estos mtodos para adaptarlos a las
nuevas subclases. El mtodo de la clase padre implementa aquellas acciones comunes. Las clases
hijas aaden las operaciones particulares que necesiten. Cuando utilicemos los mtodos de la
clase forma no tendremos que hacer distincin entre cuadrados y crculos. Gracias al polimorfismo
se ejecutar el mtodo adecuado en funcin de la subclase a la que pertenezca el objeto.
En la declaracin de una clase estamos definiendo el conjunto de mtodos y campos que son
accesibles desde fuera de una clase o lo que a menudo se denomina contrato de la clase. Este
contrato determina cual va a ser la funcionalidad de la clase. Pero cuando extendemos una clase
para crear otra estamos ampliando este contrato aadiendo ms funcionalidades. Por tanto
cuando creamos esa nueva clase hacemos uso de dos mecanismos. Por un lado la herencia para
reutilizar las partes comunes de la sper-clase. Y por otro el polimorfismo, es decir el cambio en la
forma en la que se implementa el contrato de la superclase. Como vemos al escribir una subclase
podemos sobrescribir el contrato aadiendo nuevas funcionalidades, pero no cambiarlo.
A la hora de implementar el polimorfismo tendremos dos mecanismos de los que echar mano
para sobrescribir una clase: reemplazar la implementacin de un mtodo o aadir funcionalidades
a un mtodo.
Modularidad.
La Modularidad es la propiedad que permite subdividir una aplicacin en partes ms pequeas
(llamadas mdulos), cada una de las cuales debe ser tan independiente como sea posible de la
aplicacin en s y de las restantes partes.
El Mdulo A depende del Mdulo B si cualquier cambio en el Mdulo B implica que el Mdulo A
tambin tenga que ser modificado. A veces se dice que el Mdulo A es un cliente del Mdulo B, o
que el Mdulo B acta como servidor del Mdulo A. En general, es normal que un mismo mdulo
sea tanto cliente como servidor. Esto significa, que depende de algunos mdulos, mientras que
otros mdulos dependen de l. Incluso es posible que un par de mdulos se tengan uno al otro de
cliente; sin embargo, ste es un ejemplo de dependencia circular, que debe evitarse cuando sea
posible debido a que impide la reutilizacin.
Los mdulos correctos a menudo tienen la propiedad de que sus interfaces proporcionan una
abstraccin de algn elemento conocido de manera intuitiva que puede, no obstante, ser difcil de
implementar. Este tipo de mdulos se dice que tienen una fuerte cohesin. El mdulo realiza un
conjunto coherente de cosas, pero dentro de lo posible el desarrollador del cliente est protegido
de la informacin irrelevante relativa a cmo el mdulo hace lo que hace.
Herencia
Es una propiedad que permite que los objetos sean creados a partir de otros ya existentes,
obteniendo caractersticas (mtodos y atributos) similares a los ya existentes. Es la relacin entre
una clase general y otra clase ms especfica. Es un mecanismo que nos permite crear clases
derivadas a partir de clase base, Nos permite compartir automticamente mtodos y datos entre
clases subclases y objetos. Por ejemplo: Si declaramos una clase prrafo derivada de una clase
texto todos los mtodos y variables asociadas con la clase texto son automticamente heredados
por la subclase prrafo.
Herencia: Este quizs es el tema que ms problemas causan al estudiante; sin embargo, no es
difcil en su concepcin.
El objeto Persona es un objeto muy genrico y limitado en s; as que se puede considerar como un
objeto Abstracto; ya que por si mismo no puede crear una persona completa; sin embargo, sus
funciones bsicas son las mismas en todos los seres humanos, con diferencias puntuales, as que
podemos crear dos objetos Hombre y Mujer, que hereden todas sus caractersticas genricas
como respirar, hablar, nombre, etc., del objeto Persona, y sea en la implementacin de cada
objeto donde empiezan las diferencias.
Jerarqua.
Segn el Dictionary of OT la jerarqua es cualquier clasificacin u ordenacin d e
abstracciones en una estructura de rbol. Algunos tipos de Jerarqua son:
Jerarqua de agregacin, jerarqua de clases, jerarqua de herencia, jerarqua de
particin, jerarqua de especializacin, jerarqua de tipo. s t e c o n c e p t o e s s u m a m e n t e
i m p o r t a n t e y a q u e c o n e l l o c o n o c e m o s l a importancia de dividir los problemas en una
jerarqua de ideas.
Los dos tipos importantes de jerarqua son: la de generalizacin/especializacin y la de
todo/parte.
La jerarqua de generalizacin/especializacin se basa en que las propiedades de una categora
general se trasmiten a todas las categoras que se especializan o subcategoras. En la OO,
la jerarqua de clases significa un conjunto de clases relacionadas por la jerarqua
de generalizacin/especializacin.
Paso de Mensajes