Mock: Package Coupling-Tips


(Imagen: Diapostitivas del curso de IBM)

Given the following configuration:

Package A, which contains class aClass, is in the presentation layer.
Package B, which contains a class bClass and an interface bInterface is in the business layer.
Package C, which contains cClass is in the data layer.

Which is a poor practice?

A. aClass calls a method in bClass.
B. aClass has an attribute of type cClass
C. aClass realizes bInterface
D. bClass realizes bInterface

La asociación entre paquetes es positiva y negativa: positiva, porque la asociación implica reutilización, y negativa, porque la asociación implica dependencias que dificultan los cambios y evolución del sistema. Algunos principios para la asociación de paquetes son:
  • Los paquetes no deberían ser co-dependientes. Por ejemplo, dos paquetes no deben depender el uno del otro. En estos casos, los paquetes necesiten ser reorganizados para eliminar estas dependencias mutuas.
  • Los paquetes de las capas inferiores no deben depender de los paquetes de las capas superiores. Los paquetes sólo deben ser dependientes de paquetes en la misma capa o en la capa inferior inmediata. Para estos casos, la funcionalidad necesita ser re-particionada. Una solución es establecer dependencias en términos de interfaces, y organizar las interfaces en una capa inferior.
  • En general, las dependencias no deben saltarse capas, a menos que el comportamiento dependiente sea común a todas las capas, y la alternativa sea pasar por las capas a través de invocaciones de operaciones.
  • Los paquetes no deben depender de subsistemas, sólamente de otros paquetes o interfaces.
Entonces ya está claro que la alternativa B es la adecuada.

Basado en el material del curso DEV475: Mastering Object-Oriented Analysis and Design with UML 2.0

Pregunta tomada de Elite Certify

Publicar un comentario