Hi,
ich habe gerade in einem Buch gelesen, dass eine Methode niemals andere Methoden höherer Sichtbarkeit aufrufen sollte.
Zum einen finde ich diese Aussage viel zu allgemein, denn dann könnte ja kein vollständig gekapseltes Objekt (beispielsweise eine Registry in einem DataMapper) benutzt werden, da dessen Interface naturgemäß öffentlich ist.
Desweiteren habe ich in einem anderen Buch (ist länger her und ich weiß nicht mehr genau welches es war) eine schlüssige Argumentation gelesen, weshalb man nach Möglichkeit immer auf Methoden höherer Sichtbarkeit zugreifen sollte: Es ist ja so, dass sich eine öffentliche Methode so selten wie möglich ändern sollte, weil man die Auswirkungen einer Änderung nicht unter Kontrolle hat, da jeder die Methode nutzen kann. Wie sie intern arbeitet und welche Strukturen sie benutzt ist dabei erstmal egal. Je geringer jedoch die Sichtbarkeit ist, desto eher kann man Methoden auch einmal entfernen oder deren Signatur ändern. Es ist also sinnvoll beispielsweise auch in der Klasse ein Attribut mit dem Getter zu lesen und dem Setter zu setzen, anstatt immer direkt darauf zuzugreifen, weil im Setter beispielsweise auch die Gültigkeit geprüft wird. Außerdem erspart man sich Refakturierungsarbeit, wenn sich die interne Struktur der Klasse ändert - man also beispielsweise eine andere Datenstruktur zum speichern von Daten verwendet.
Diese beiden Aussagen stehen im Widerspruch zueinander und ich kann die erste ehrlich gesagt nicht nachvollziehen. Welche Argumente sprechen dafür?
Viele Grüße
Christian
ich habe gerade in einem Buch gelesen, dass eine Methode niemals andere Methoden höherer Sichtbarkeit aufrufen sollte.
Zum einen finde ich diese Aussage viel zu allgemein, denn dann könnte ja kein vollständig gekapseltes Objekt (beispielsweise eine Registry in einem DataMapper) benutzt werden, da dessen Interface naturgemäß öffentlich ist.
Desweiteren habe ich in einem anderen Buch (ist länger her und ich weiß nicht mehr genau welches es war) eine schlüssige Argumentation gelesen, weshalb man nach Möglichkeit immer auf Methoden höherer Sichtbarkeit zugreifen sollte: Es ist ja so, dass sich eine öffentliche Methode so selten wie möglich ändern sollte, weil man die Auswirkungen einer Änderung nicht unter Kontrolle hat, da jeder die Methode nutzen kann. Wie sie intern arbeitet und welche Strukturen sie benutzt ist dabei erstmal egal. Je geringer jedoch die Sichtbarkeit ist, desto eher kann man Methoden auch einmal entfernen oder deren Signatur ändern. Es ist also sinnvoll beispielsweise auch in der Klasse ein Attribut mit dem Getter zu lesen und dem Setter zu setzen, anstatt immer direkt darauf zuzugreifen, weil im Setter beispielsweise auch die Gültigkeit geprüft wird. Außerdem erspart man sich Refakturierungsarbeit, wenn sich die interne Struktur der Klasse ändert - man also beispielsweise eine andere Datenstruktur zum speichern von Daten verwendet.
Diese beiden Aussagen stehen im Widerspruch zueinander und ich kann die erste ehrlich gesagt nicht nachvollziehen. Welche Argumente sprechen dafür?
Viele Grüße
Christian