Es gibt mehrere Gründe, solche Methoden zu implementieren:
- Als Debug-Hilfe. Man kann dort Breakpoints setzen, was bei direkten Feldzugriffen schwierig ist.
- Um direkte Feldzugriffe von außen zu verhindern:
Delphi-Quellcode:
PInteger := @SomeClass.SomeProperty;
// oder
ProcedureWithVarParam(SomeClass.SomeProperty);
Die würden evtl. bei späteren Änderungen zu Compilefehlern führen, was zusätzlichen Aufwand produziert. Deshalb besser schon von Anfang an verhindern.
- Um spätere Änderungen, die zu komplexeren Methoden führen, vorzubereiten. Dies in der Regel dann natürlich mit virtuellen Methoden.
Wenn ich länger drüber nachdenke, fallen mir bestimmt noch weitere Gründe ein...