Sunteți pe pagina 1din 14

Modelando el mundo real

con objetos
Anya M Bolaño Arias
Ingeniera de Sistemas
Magíster en Ingeniería de Sistemas y Computación
Docente Ocasional de Tiempo Completo
Departamento de Ingeniería de Sistemas
Universidad Popular del Cesar
Introducción
• Los humanos aprenden de un objeto estudiando sus
atributos y observando su comportamiento.
• Distintos objetos pueden tener atributos y
comportamientos similares. Por ejemplo pueden
compararse bebes y adultos, humanos y chimpancé,
autos y camiones.
• El Diseño Orientado a Objetos(DOO) Modela el
Software en términos similares a los que utilizan las
personas para describirlos objetos en el mundo real.
• Este diseño aprovecha la relaciones entre clases, en
donde los objetos de ciertas clases tienen las mismas
características. También aprovechan las relaciones
de herencia, herencia múltiple.
• El diseño orientado a objetos modela el
comportamiento y la comunicación de los objetos.
Así como las personas se comunican unas con otras.

Cómo programar en Java, Escrito por Harvey M. Deitel,Paul J. Deitel


• 6. Modelando el mundo el mundo real con objetos
6.1. Asociación
6.1.1. Unos a muchos
6.1.2. Uno a Uno
6.1.3. Muchos a muchos
6.2. Tipos de Asociación
6.2.1. Composición
6.2.2. Herencia
6.2.3. Agregación
6.2.4. Dependencia
Asociación (conexión entre clases)
• Es una relación de estructura entre clases, es
decir, una entidad se construye a partir de otra
u otras. el tiempo de vida de un objeto no
depende de otro.
• La ClaseA depende de la ClaseB.
• La ClaseA está asociada a la ClaseB.
• La ClaseA conoce la existencia de la ClaseB pero
la ClaseB desconoce que existe la ClaseA.
• Todo cambio en la ClaseB podrá afectar a
la ClaseA.
• Esto significa que la ClaseA tendrá como
atributo un objeto o instancia de la ClaseB (su
componente). La ClaseA podrá acceder a las
funcionalidades o atributos de su componente
usando sus métodos
Navegación de las Asociación:
Unidireccional y Bidireccional
Multiplicidad

• Cada extremo de una asociación puede ser etiquetado con un


conjunto de enteros que indican la cantidad de vínculos que se
pueden originar legítimamente a partir de una instancia de la clase
conectada extremo de la asociación.
• Las asociaciones son similares a las clases en que pueden tener
atributos y operaciones asociados a ellas. A una asociación de éstas se
le llama clase de asociación, se muestra con un símbolo de clase que
contiene los atributos y operaciones y está conectada con el símbolo
de asociación mediante una línea de guiones.
Multiplicidad Mínima y Máxima
Multiplicidad Significado
1 Uno y Solo uno
0…1 Cero o uno
N…M Desde N hasta M
* Cero o varios
0…* Cero o varios
1…* Uno o varios (al
menos uno)

• Cuando la multiplicidad mínima es 0, la relación es opcional


• Cuando la multiplicidad mínima es mayor o igual a 1, la relación es
Obligatoria
Agregación
• La agregación es un tipo de asociación que indica
que una clase es parte de otra clase.
• Los componentes pueden ser compartidos por
varios compuestos (de la misma asociación de
agregación o de varias asociaciones de agregación
distintas).
• La destrucción del compuesto no conlleva la
destrucción de los componentes. Habitualmente
se da con mayor frecuencia que la composición.
• La agregación se representa en UML mediante un
diamante de color blanco colocado en el extremo
en el que está la clase que representa el “todo”.
Composición
• Composición es una forma más fuerte de asociación donde la vida de
la clase contenida debe coincidir con la vida de la clase contenedor.
• Los componentes constituyen una parte del objeto compuesto. De
esta forma, los componentes no pueden ser compartidos por varios
objetos compuestos. La supresión del objeto compuesto conlleva la
supresión de los componentes.
El símbolo de composición es un diamante de color negro colocado en
el extremo en el que está la clase que representa el “todo”
(Compuesto).
Diferencia entre Agregación y
Composición en código

https://www.taringa.net/posts/apuntes-y-monografias/18677104/UML-Diferencia-Agregacion-Asociacion-y-Composicion-Codigo.html
Asociación

• Los objetos son pasados por parámetro, no han sido instanciados


dentro del método, es decir no hemos realizado el new del objeto.
El objeto ha "nacido" en cualquier otra parte y se lo hemos pasado
por parámetro al método para ser agregado a la lista
LugaresFrecuentes.
• En otras palabras, el objeto Persona podría morir, y el objeto aún
podría mantener una referencia activa en alguna otra parte de
nuestro código por lo tanto sus ciclos de vida no estrían atados. No
nace ni muere, dentro de la Persona.
Composición.
• la instanciación del objeto perfiles se realiza dentro del método agregar y la
referencia no se devuelve.
• La variable de referencia local va a dejar de existir una vez que el método se
termine de ejecutar, y el ciclo de vida de esa instancia en particular va a
quedar atada a la lista, y por ende a la Persona.
• Una vez que el objeto Persona no se referencie más, (o sea muera, aunque
técnicamente esto no es así) el objeto lista, quedará sin referencia, y por lo
tantos sus elementos también. Cualquier borrado del todo implica el
borrado de la parte
Herencia (Generalización y
Especialización)
• La relación de superclase y subclase

• objetos de distintas clases pueden


tener atributos similares y exhibir
comportamientos parecidos
(Ejemplo Animales, mamíferos)
• El comportamiento de una categoría
general es aplicable a una categoría
s particular
• Las Subclases heredan
características de la clase que
derivan y añaden características
que las diferencian

S-ar putea să vă placă și