Designproblem: "vererbbare" Freundschaft....
-
huhu
Ist es moeglich, "friend"-Deklarationen auch auf alle abgeleiteten Klassen des Friend zu erlauben? Habe in etwa folgendes Problem:
Habe eine Klasse (Partikel) mit mehreren private-Attributen, die fuer das Funktionieren der Klasse zwar wichtig sind, aber nach aussen hin keine Wirkung haben. Deshalb besitzen sie auch keine setter/getter oder andere Zugriffsfunktionen... anders gesagt: die Klasse selber braucht sie zwar, aber es ist ein Implementierungsdetail, auf das man auch verzichten kann... und deshalb scheinen sie auch nirgends im Klasseninterface auf... schliesslich will ich ja auch die Implementierung aendern koennen (und diese private-Attribute entfernen/durch andere ersetzen), ohne dass sich das auf das Interface auswirkt...
Allerdings gibt es eine Klasse (eine Manager-Klasse, die diese Partikel verwaltet), und es waere eine ziemliche Erleichterung, wenn diese auf die private-Attribute zugreifen koennten.... sprich: ein "friend" bietet sich an...
das Riesen-Problem an der Sache: die Manager-Klasse ist eigentlich nur eine abstrakte Klasse, von der verschiedene Arten von Managern abgeleitet werden...
Deshalb meine Frage: kann man das "friend" irgendwie vererben, so dass die Childs der Managerklasse auch "friend"s der Partikel sind? Fuer jede Manager-Subclass ein eigener "friend"-Eintrag scheint mir doch recht doof, und eigene Zugriffsfunktionen fuer die privaten Member von Partikel passen IMO nicht ins Design....
-
Du könntest die Zugriffsfunktionen in der Manager-Klasse definieren, und zwar protected. Wenn es irgendwelche Higher-Level-Funktionen gibt, die die simplen Zugriffsfunktionen überflüssig machen, dann kommen die in die Manager-Klasse (wirst du schon merken, dass sich Code verdoppelt).
-
thx