Vamos a ver en esta ocasión las relaciones de agregación y composición tal y como se codifican. Lo vamos a hacer en php aunque la calidad de este lenguaje es inversamente proporcional a su popularidad.
Veamos el código:
Tenemos tres clases A, B y C , como ven no me he matado eligiendo los nombres. Las relaciones que se dan entre ellos son las siguientes:
Entre A y B hay una relación de composición. El tiempo de vida de la instancia $InstanciaA está limitado por el tiempo de vida de la instancia que lo contiene.
Entre A y C hay una relación de agregación. El tiempo de vida de la instancia $InstanciaA no está limitado por el tiempo de vida dela instancia que hace uso de él.
Si ejecutásemos el script mediante "php test.php" el resultado sería el siguiente:
Hola
Hola
Hola
Tan cordial salida es debida a que la $InstanciaB hace uso de la $InstanciaA para ejecutar la salida por pantalla, una vez termina el tiempo de vida de $InstanciaB ambas desaparecen.
El segudo 'Hola' viene dado por la $InstanciaC que usa la $InstanciaA para la producir la salida , el último saludo proviene de $InstanciaA que ha sobrevivido a $InstanciaC.
Veamos el código:
class A
{
function Ver()
{
echo "Hola"."\n";
}
}
class B
{
private $InstanciaA;
function Ver()
{
$InstanciaA = new A;
$InstanciaA->Ver();
}
}
class C
{
function Ver($InstanciaA)
{
$InstanciaA->Ver();
}
}
$InstanciaA = new A();
$InstanciaB = new B();
$InstanciaC = new C();
$InstanciaB->Ver();
$InstanciaC->Ver($InstanciaA);
$InstanciaA->Ver();
Tenemos tres clases A, B y C , como ven no me he matado eligiendo los nombres. Las relaciones que se dan entre ellos son las siguientes:
Entre A y B hay una relación de composición. El tiempo de vida de la instancia $InstanciaA está limitado por el tiempo de vida de la instancia que lo contiene.
Entre A y C hay una relación de agregación. El tiempo de vida de la instancia $InstanciaA no está limitado por el tiempo de vida dela instancia que hace uso de él.
Si ejecutásemos el script mediante "php test.php" el resultado sería el siguiente:
Hola
Hola
Hola
Tan cordial salida es debida a que la $InstanciaB hace uso de la $InstanciaA para ejecutar la salida por pantalla, una vez termina el tiempo de vida de $InstanciaB ambas desaparecen.
El segudo 'Hola' viene dado por la $InstanciaC que usa la $InstanciaA para la producir la salida , el último saludo proviene de $InstanciaA que ha sobrevivido a $InstanciaC.
Comentarios