Radial Encapsulation


En Java, todas las clases pueden ver todas las clases públicas de todos los paquetes. Esta promiscuidad genera cantidades astronomicas de acoplamiento potencial (la medida del número máximo de dependencias que se pueden formar en un sistema).  La solución es simple: restringir el acceso al paquete.

Una forma de lograrlo, es permitir que los paquetes dependan sólo de los antecedentes. Esta es la encapsulación radial. Que viene siendo una regla extra-lingüística, un estilo de programación.

Ejemplo:
Si tienes como nombre de paquete: com.cheesepaint, entonces sólo puedes depender del paquete: com.
Si tienes como nombre de paquete: com.cheesepaint.model, entonces sólo puedes depender de los paquetes: com y com.cheesepaint.

VENTAJAS

– Reduce drásticamente la cantidad de dependencias que se pueden crear en el sistema.

COMO HACERLO

Dos paquetes sólo puede comunicarse a través de su (por lo general el más alto) antecedente común, que en este caso es: com.cheesepaint. Así pues com.cheesepaint.model debe exportar una fachada (familia de clases o interfaces) en com.cheesepaint y com.cheesepaint.controller y tiene que depender de esa fachada y no de com.cheesepaint.model directamente. Sólo asegúrese de que todo lo que depende tanto de com.cheesepaint.controller y com.cheesepaint.model es absolutamente trivial.

Bibliografia.

Anuncios
Radial Encapsulation