Ver Mensaje Individual
  #4  
Antiguo 24-02-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
Si me lo permiten, creo que hay que aclarar algo, una asociación puede ser de agregación de composición o agregación compartida.

El concepto de agregación de composición o comunmente llamado a secas, composición (en UML se lo identifica con el rombo relleno o pintado) implica una relación de dependencia absoluta, las partes no pueden existir sin el Compuesto puesto que es éste último quien las crea.
En una composición se da por establecido que el tiempo de vida de las partes depende en exclusiva del Compuesto: El Compuesto y las partes existen mientras exita el Compuesto.

La agregación compartida, (que en UML se la representa con el rombo hueco) o simplemente llamada agregación, implica una asociación en la que tanto el Compuesto como las Partes no tienen una relación de dependencia extricta. Ambos tienen tiempos de vida independientes, por tanto uno puede vivir sin el otro. Y además, la parte Puede estar presente en muchas instancias de un Compuesto: es decir que se rompe la depedencia extricta de que una Parte le pertenece a un Compuesto.

No se si he entendido bien, pero me parece que AzidRain ha mezclado ambos conceptos.

Ahora bien, existe otro concepto relacionado con el término asociación: la clase asociación. La clase asociación se emplea, haciendo analogía con las bases de datos, para romper la relación mucho-mucho entre dos entidades. Vendría a ser como la tabla intermedia.
Básicamente la clase asociación establece asociaciones entre una clase y otra de forma que en ésta se establezca el atributo vinculante en la relación.

Dado el código de noob no podemos inferir que se trate de agregación, ni composición; si podemos afirmar que existe una relación o vínculo, de algún tipo no establecido o reconocido, entre dichas clases.
No se puede afirmar que existe una asociación, en todo caso existe una relación.

El concepto asociación, que yo sepa, implica el concepto de Compuestos y Partes (ya sea de composición o compartida), y por tanto de como se empleen dichos atributos o campos privados. Una asociación implica una dependencia, pero a la inversa, una dependencia no implica una asociación.

La dependencia como bien menciona AzidRain, establece que una clase A, depende de otra clase B puesto que A debe diseñarse para responder apropiadamente al diseño e implementación de B; mientras A haga uso de B existirá una dependencia. En el caso del ejemplo de noob, TClase es la clase dependiente y TClase2 es la independiente.

Al menos eso es lo que yo tengo entendido, si estoy equivocado les agradecería que me señalacen mis errores (u horrores).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita