avoir un peu de problème architectural ici.
En C++, nous avons la notion d '"amis", où ces classes d'amis peuvent accéder aux membres privés.
Donc, je conçois une application Java et j'essaie d'adhérer à l'architecture MVC. J'ai une classe de contrôleur qui gère la connectivité graphique entre les 'map_objects'. Je voudrais masquer le fonction dans le DTO 'map_objects' qui actuall configure ces connectivités, en utilisant cette classe de contrôleur.
(C'est-à-dire que même si la classe de contrôleur implémente la fonctionnalité requise de configuration des connectivités, les `` utilisateurs '' peuvent toujours accéder directement aux fonctions setter/getter dans le DTO pour les configurer eux-mêmes.)
Y a-t-il des modèles de conception ou des conseils à cet égard? (Ou ai-je totalement foiré?)
[~ # ~] dupliquer [~ # ~]Existe-t-il un moyen de simuler le C++ concept 'ami' en Java?
(Un) heureusement, il n'y a pas d'équivalent ami C++ direct en Java. Cependant, les modificateurs de niveau d'accès Java peuvent vous aider. En particulier, private ou package private (AKA package protected, ou "default") peut aider.
Vous voudrez peut-être utiliser ségrégation d'interfaces - c'est-à-dire laisser la classe implémenter différentes interfaces et ne transmettre que des références aux interfaces appropriées (plus petites) aux différents clients.