La Agregación en UML según yo

Bueno, en el post anterior vimos como se conforma una relación de Composición entre dos objetos; ahora veremos como se conforma una relación de Agregación.
La Agregación es un tipo de relación dinamica, donde el tiempo de vida del objeto incluido es independiente del que lo incluye.
Con la relación de Composición se dice: "Un banco tiene cuentas bancarias, pero si no existe el banco tampoco las cuentas." pero con la Agregación es: "El banco tiene clientes, pero si no existe el banco los clientes siguen estando." osea los clientes (las personas) no mueren con el banco, las cuentas bancarias si.
Veamos algo de código:
class Cliente{
private $nombre = '';
private $dni = 0;
private $fechaNacimiento;
public function __construct($nombre, $dni, $fechaNacimiento){
$this->nombre = $nombre;
$this->dni = $dni;
$this->fechaNacimiento = $fechaNacimiento;
}
public function setNombre($nombre){ $this->nombre = $nombre; }
public function setDni($dni){ $this->dni = $dni; }
public function setFechaNacimiento($fechaNacimiento){ $this->fechaNacimiento = $fechaNacimiento; }
}
class Banco{
private $nombre = '';
private $direccion = '';
private $clientes = array();
public function __construct($nombre,$direccion){
$this->nombre = $nombre;
$this->direccion = $direccion;
}
public function agregarCliente(Cliente $cliente){
$this->clientes[] = $cliente;
}
}
$banco = new Banco('Nacion', 'Lejos de aca');
$dario = new Cliente("Dario", 3000000000, "10-10-2010");
$claudio = new Cliente("Claudio", 3000000001, "10-10-2010");
$banco->agregarCliente($dario);
$banco->agregarCliente($claudio);
unset($banco);
echo '<pre>';
var_dump($dario, $claudio);
echo '</pre>';
Como se puede ver, banco muere, pero los clientes siguen "vivos".
Cualquier duda en los comentarios.
DarioDario


2 comentarios:
Como es la lectura del rombo?... tiene un sentido específico?
El rombo esta al lado de la clase que contiene la referencia (variable o puntero) a la otra clase.
La explicación si bien corta, creo que esta muy bien lograda. En realidad es sorprendente lo mucho que cuesta a los estudiantes (y a algunos profesores) comprender el significado de la agregación y la composición en términos del tiempo de vida de las instancias.
Publicar un comentario en la entrada