Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2007, 05:51
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: $PHP->Orientado_a_objetos()

La diferencia entre agregación y composición es conceptual, no se diferencia por código.

Lo que es código se representa como la "agregación" de objetos por parte de un objeto único, por ejemplo: una clase Escuela "agrega" muchos Alumnos, lo que podría convertirse en un método "agregarAlumno" de la clase Escuela, donde lo único que hace es insertar el objeto dentro de una colección (array) de alumnos.

La composición se daría cuando la relación entre los dos tipos de objetos (Escuela, Alumno) es de "compuesto/componente" donde el componente no podría existir solo sin el compuesto.

Por ejemplo, en un contexto dado podría ser:
  • Un círculo se dibuja como muchos puntos uno a continuación del otro, pero los puntos en nuestro contexto no pueden existir de forma aislada. Existe entonces una relación de composición entre Círculo y Puntos ("el círculo agrega muchos puntos").
  • Una clase Banco que contiene muchos clientes y a su vez cada cliente contiene muchas cuentas. Se puede decir que hay una "relación de vida" entre Banco - Cliente y Cliente - Cuentas, donde los clientes no pueden estar "sueltos" en nuestro sistema sin estar asociados al Banco, de la misma forma no pueden existir Cuentas que no estén asociadas a un Cliente.

Me encontraste con ganas de escribir, pero te recuerdo que estos temas son elementales y se encuentra perfectamente la explicación conceptual de cada caso.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com