Etwas, worüber ich vorher wirklich nicht nachgedacht habe (AS3-Syntax):
private var m_obj:Object;
protected function get obj():Object
{
return m_obj;
}
private var m_str:String;
protected function get str():String
{
return m_str;
}
Zumindest Unterklassen können m_obj oder m_str nicht setzen (obwohl sie m_obj noch ändern könnten).
Meine Frage: Ist das nur eklatanter Overkill?
Die Frage dieses Programmierers: Wann oder warum sollte man Getter / Setter für Klasseneigenschaften verwenden, anstatt sie einfach zu öffentlichen Eigenschaften zu machen? wurde als Duplikat vorgeschlagen.
Diese Frage ist anders, da sie nur öffentliche oder private Eigenschaften betrifft und ob eine Eigenschaft mit Getter & Setter umwickelt werden soll. Bei meiner Frage konzentriere ich mich auf geschützte Variablen und darauf, wie erbende Klassen mit diesen Variablen interagieren würden.
Die alternative Implementierung wäre also:
protected var m_obj:Object; //more accessible than a private variable with a protected getter
protected var m_str:String; //more accessible than a private variable with a protected getter
Meine Frage ist ähnlich, weil ich über die Verwendung trivial geschützter Getter spreche, um das Schreiben von Unterklassen in die Variablen zu blockieren , ihnen aber allen anderen Zugriff zu ermöglichen.
In Sprachen wie AS3 können sie sogar Änderungen an veränderlichen Objektvariablen vornehmen, solange die Referenzen selbst nicht geändert werden.