2008-12-17 11 views
26

teniendo un pequeño problema arquitectónico aquí.'equivalente de amigos' para Java?

En C++, tenemos la noción de 'amigos', donde dichas clases de amigos pueden acceder a miembros privados.

Por lo tanto, estoy desarrollando una aplicación Java e intentando adherirme a la arquitectura MVC. Tengo una clase de controlador que gestiona la conectividad gráfica entre 'map_objects'. Me gustaría ocultar la función en el DTO 'map_objects' que actuall configura estas conectividades, mediante el uso de esta clase de controlador.

(Es decir, incluso si la clase del controlador implementa la funcionalidad requerida de la creación de conectividades, los 'usuarios' todavía se puede acceder a las funciones setter/getter en el DTO directamente para ponerlos en marcha a sí mismos.)

¿Hay cualquier patrón de diseño o consejos al respecto? (o he totalmente estropeado?)

DUPLICADOIs there a way to simulate the C++ 'friend' concept in Java?

Respuesta

20

(Un), afortunadamente, no hay ++ directa C amigo equivalente en Java. Sin embargo, el Java access level modifiers puede ayudarlo. En particular, privado o paquete privado (paquete AKA protegido, o "predeterminado") puede ayudar.

15

Es posible que desee utilizar interface segregation - es decir, deje que la clase implemente interfaces diferentes, y solo pase referencias a las interfaces apropiadas (más pequeñas) a los diferentes clientes.