bubble: Java - Klassenstruktur - Readable - ReadWritable

Beitrag lesen

Hallo,

ich kämpfe seit einigen Wochen mit einer guten Lösung für folgendes Problem:

Voraus, ich lasse "Sichtbarkeitskram" ala public, protected, private außen vor, da ich nicht wieß wie ich es machen soll.

Angenommen ich habe 2 Klassen nach folgender Struktur:

class ProjectConfig {  
     String owner = "unknown";  
     Managers managers = new Managers();  
}  
  
class Managers {  
     String classLoaderManager = "ds.managers.ClassLoaderManager";  
     String classManager = "ds.managers.ClassManager";  
     String instanceManager = "ds.managers.InstanceManager";  
}

Das ganze ist ja mehr oder weniger eine Baumstruktur.

Nun hätte ich es gerne so, dass ich aus dieser Basis heraus 2 verschiedene Klassentypen hätte:
Einmal nur lesbar und einmal les- und schreibbar.

Eine Variante wäre alle Member protected zu machen, ProjectConfig und Managers mit Getter-Funktionen auszustatten und daraus dann je eine Klasse mit Setter-Funktionen abzuleiten.
Nun find ich das allerdings eine recht umständliche Lösung. Ich hätte es lieber so, dass ich nur eine schreib- und lesefähige "Hauptklasse" kreieren müsste und beliebig viele nur lesefähige Klassen bauen könnte.

Ich könnte das ganze über ein Worterbuch a la List<String, Object> lösen, nachteil dabei ist aber, dass dann keine Vervollständigung per IDE möglich ist und im Endeffekt werden das um die 100 Schlüssel.

Einfach interfaces mit Getter- bzw. Setter-Funktionen und die Klasse implementiert beide kommt nicht in Frage, da ein simples "umcasten" möglich ist. (Über Reflexion geht es zwar generell, aber das sollte außen vor bleiben)

Wie würdet ihr so etwas lösen?

PS: Das ganze ist im Endeffekt die Konfiguration eines Plugin-Frameworks, dass ich mehr oder weniger zu Übungszwecken bastel. (Falls diese Information wichtig ist, möchte ich es erwähnt haben)

MfG
bubble

--
If "god" had intended us to drink beer, he would have given us stomachs. - David Daye