Programación Orientada a Objetos Asignación de

Anuncio
Programación Orientada a Objetos
Asignación de Responsabilidades
Ing
Ing.. Julio Ernesto Carreño Vargas
MsC..
MsC
Asignación de Responsabilidades a las
clases
Se deben asignar responsabilidades al experto en la
información,
la clase que tiene la información necesaria para satisfacer la
responsabilidad.
Cada objeto es responsable por mantener su propia
información, principio de encapsulamiento
Conoce y puede informar el valor de sus atributos
Puede modificar el valor de sus atributos
Programación Orientada a Objetos
2
1
Creación de Objetos
Quién es el responsable de crear una nueva instancia de
una clase?
El objeto B tiene la responsabilidad de crear objetos de la
Clase A si:
B contiene objetos A
B registra objetos A
B usa exhaustivamente objetos A
B conoce a A
B posee la información necesaria para inicializar a A
Programación Orientada a Objetos
3
Creación de Objetos
Primera Alternativa:
En el constructor de la clase “propietaria” de la
relación, reciba y asigne una instancia de la clase
referenciada.
Programación Orientada a Objetos
4
2
Creación de Objetos
Segunda Alternativa:
En el constructor de la clase “propietaria” de la relación, cree una
nueva instancia de la clase referenciada invocando un
constructor vacío.
Posteriormente use los métodos modificadores(set) para
asignar valores a los atributos
Programación Orientada a Objetos
5
Creación de Objetos
Tercera Alternativa:
En un método modificador de la clase “propietaria” de la
relación, reciba y asigne una instancia de la clase
referenciada, por lo tanto una tercera clase es la
encargada de crear y pasar la instancia
Programación Orientada a Objetos
6
3
Creación de Objetos
Cuarta Alternativa:
En un método de la clase “propietaria” de la relación, cree una nueva
instancia de la clase referenciada, reciba los parámetros para crear la
instancia.
Programación Orientada a Objetos
7
Creación de Objetos
En una relación de todo/parte(agregación/composición):
El todo es responsable de crear cada una de las partes. Para ello se crea un
nuevo método.
Si la cardinalidad es *, se debe agregar la nueva instancia a la colección de
objetos.
Programación Orientada a Objetos
8
4
Colaboración de objetos
La clase prueba quiere saber el nombre del Conductor del bus
que está atado a dicha clase(Prueba)
Programación Orientada a Objetos
9
Colaboración entre Objetos
Prueba le pregunta a Bus, y Bus le consulta a su Conductor a través
de las relaciones de asociación.
Programación Orientada a Objetos
10
5
Colaboración de objetos
Test desea conocer cuál es la cantidad total de salones de su
edificio.
Quién sabe cuántos salones hay en total?
Quién tiene la información para contestar a esta pregunta?
Programación Orientada a Objetos
11
Colaboración de objetos
Observe que apareció un nuevo método “TotalizarSalones” en la
clase Edificio, ya que es esta clase la que tiene la información
para responder dicha pregunta.
Programación Orientada a Objetos
12
6
Colaboración de objetos
Test desea conocer de cuántos pisos está contruido su Edificio
llamado contiene?
Programación Orientada a Objetos
13
Error Típico
No asignó memoria a la instancia llamada contiene (donde está el
new?)
Programación Orientada a Objetos
14
7
Error Típico
El main tiene una instancia llamada “contiene” de Edificio que es
diferente al atributo privado “contiene” de la clase Test.
Programación Orientada a Objetos
15
Bibliografía
UML y patrones una introducción al análisis y diseño orientado a
objetos y al proceso unificado. Larman, Craig
Paul Deitel. Como programar en Java 7/e. Pearson Education.
2007.
Programación Orientada a Objetos
16
8
Descargar