2011-06-30 9 views

Respuesta

3

Consulte las blockquotes sobre tipos de relaciones tomadas desde IBM Rational Software Architect documentation.

"depende" significa lo siguiente:

una relación de dependencia indica que cambia a un elemento de modelo (el proveedor o elemento de modelo independiente) puede causar cambios en otro modelo elemento (el cliente o modelo dependiente elemento). El elemento de modelo de proveedor es independiente porque un cambio en el cliente no lo afecta. El elemento del modelo cliente depende del proveedor porque un cambio en el proveedor afecta al cliente.

"utiliza" significa lo siguiente:

Una relación de uso es una relación de dependencia en el que un modelo elemento requiere la presencia de otro elemento del modelo (o conjunto de modelo elementos) para su implementación completa u operación. El elemento del modelo que requiere la presencia de otro elemento del modelo es el cliente, y el elemento del modelo cuya presencia se requiere es el proveedor. Aunque una relación de uso indica un requisito continuo de , también indica que la conexión entre los dos elementos del modelo no siempre es significativa o presente.

Según lo leí, "uso" es una "dependencia" menos estricta.

+0

"Cuando lo leí," uso "es una" dependencia "menos estricta". No, son bastante diferentes. – BonyT

+0

@BonyT, ¿me puede dar su opinión? –

+0

Si usa otro objeto, sus cambios internos no le interesan. Pero si "Dependes de" otro objeto, entonces lo hacen. Eso es lo que define los dos términos. – BonyT

1

"Usos" es cuando una Clase se refiere a otra Clase para algunas de sus operaciones.

"Depende de" es cuando una Clase A usa otra Clase B dentro de su implementación (por ejemplo, como un parámetro para un método). En este caso, cambiar la Clase B puede requerir un cambio a la clase A.

Nota He dicho Clase, pero se aplica igualmente a las Interfaces.

Wikipedia tiene un buen artículo sobre esto: http://en.wikipedia.org/wiki/Dependency_%28UML%29

Así, por ejemplo, usted podría tener una relación entre Utiliza un controlador de clase y un IVehicle interfaz que expone un método llamado Drive(). Los cambios en la implementación de Drive no requieren ningún cambio en Driver, por lo que usted dice que Driver usa IVehicle.

Sin embargo, Class Driver tiene una Dependencia en Class Hand, ya que Driver tiene dos propiedades: Hand LeftHand y Hand RightHand. Si la implementación de estos cambios, uno tendría que considerar si el controlador necesitaba actualizarse en consecuencia.

+0

mano/controlador parece más una relación de composición, no una dependencia pura? –

+0

Sí - Lo sé - no es un gran ejemplo - he estado tratando de pensar en una mejor en la misma línea – BonyT

+0

Yo diría que todas las composiciones son relaciones de dependencia, pero sí - se describen mejor como una composición – BonyT

Cuestiones relacionadas