2008-12-17 25 views
26

mit ein paar architektonischen Schwierigkeiten hier."Friends" entspricht für Java?

In C++ haben wir den Begriff 'Freunde', wo solche Freundesklassen auf private Mitglieder zugreifen können.

Also, ich entwickle eine Java-App und versuche, die MVC-Architektur einzuhalten. Ich habe eine Controller-Klasse, die Graph-Konnektivität zwischen 'map_objects' verwaltet. Ich möchte die Funktion in den DTO 'map_objects' verbergen, die diese Konnektivitäten tatsächlich aufbaut, indem ich diese Controller-Klasse verwende.

(Dh, selbst wenn die Controller-Klasse die erforderliche Funktionalität der Einrichtung Konnektivitäten implementiert, können die ‚Nutzer‘ noch Setter/Getter Funktionen im DTO direkt sie setzen sich Zugriff auf.)

Gibt es irgendwelche Designmuster oder Tipps in dieser Hinsicht? (Oder habe ich total muckte up?)

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

Antwort

20

(Un) zum Glück gibt es keine direkte C++ Freund Äquivalent in Java. Jedoch kann die Java access level modifiers Ihnen helfen. Insbesondere private oder private Pakete (AKA-Paket geschützt oder "Standard") können helfen.

15

Sie könnten interface segregation verwenden - das bedeutet, dass die Klasse verschiedene Schnittstellen implementieren und nur Verweise auf die entsprechenden (kleineren) Schnittstellen an die verschiedenen Clients verteilen soll.