2008-12-17 11 views
26

ayant un petit problème architectural ici. En C++, nous avons la notion d'amis, où de telles classes d'amis peuvent accéder à des membres privés. Donc, je devais créer une application Java et essayer d'adhérer à l'architecture MVC. J'ai une classe de contrôleur qui gère la connectivité de graphes entre 'map_objects'. Je voudrais cacher la fonction dans le DTO 'map_objects' qu'actall met en place ces connectivités, en utilisant cette classe de contrôleur.'Amis' équivalent pour Java?

(Ie, même si la classe contrôleur implémente les fonctionnalités de la mise en place connectivités, les « utilisateurs » peuvent encore accéder aux fonctions setter/getter dans le DTO directement à les mettre en place eux-mêmes. Requis)

Y at-il des modèles de conception ou des conseils à cet égard? (Ou ai-je totalement mucked up?)

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

Répondre

20

() heureusement, il n'y a pas l'équivalent direct ami C de Java. Cependant, le Java access level modifiers peut vous aider. En particulier, private ou package privé (AKA package protected, ou "default") peut aider.

15

Vous pouvez utiliser interface segregation, c'est-à-dire laisser la classe implémenter des interfaces différentes et ne transmettre que des références aux interfaces (plus petites) appropriées aux différents clients.