Die Properties sind ursprünglich zumeist Ganzzahlwerte oder Zeichenketten in Datenbanken (Systeminformation) in geschützten Speicherbereichen und vorzüglich Konfigurationsparameter. Weswegen die Entsprechung mit published im Kontext der
IDE an sich stimmig ist.
Wenn du wirklich ein Framework dicht machen willst und gegen insbesondere unbewusste missbräuchliche Verwendung durch andere Team Mitglieder schon während der Entwicklung willst schützen musst du am Ende auf C/C++ zurückgreifen. Das ist zumeist ein Overkill. Für die gebräuchliche Verwendung ist im Delphi genug da.
Die meisten Sachen grad im Zusammenhang mit Vererbung und Delphi bspw. sind in der Praxis nicht relevant, da eine Klassenbibliothek nicht viel mehr als 4 (bis max 7 im Ausnahmefall) Vererbungstiefe sollte aufweisen. Respektive war als Delphi das Licht der Welt erblickte diese Forderung eher eine technische Notwendigkeit, aber nicht nur. die Forderung hat aber auch mit Übersichtlichkeit zu tun. Damit relativiert sich viel. Die Verantwortlichkeit ist eben sauberer abgebildet.
Jetzt werden gleich die ersten schreiben. 'Aber es darf nur einen Ort gehen an dem etwas im Programm passiert'. Das stimmt zwar, kommt aber ursprünglich aus dem systemischen Zugang zu modularen Systemen. In der echten 'OO' ist der eine Platz einfach im Kontext einer Klasse oder einem Objekt definiert welches zuständig ist. Die Hybridsprachen müssen das alles eher in der Vererbungshierarchie abbilden. Die sind ewig auf der Suche nach dem zuständigen Typen und fragen nicht einfach ein Objekt von dem sie glauben oder wissen.
So irr wie das ganze heute betrieben wird in der Objektorientierung hat auch nie jemand verlangt.
Die Java Leute haben mit den Design Patterns im Java Framework angefangen und MS hat das ganze zur Perversion getrieben. HIT ist der Standardimplementierungsmehtode, fast alles ist abgesichert bis zum Abwinken und von
IDE der unterstützt.
Sowie da.
Es geht heut keiner mehr her und sagt, 'Jetzt haben wir einen netten Code geschrieben und freuen uns, dass dieser sogar funktioniert'.
Die IT war schon mal gemütlicher und damals hat man sich mehr Gedanken drüber gemacht wie man sich Arbeit erspart. Diese Denke war/ist im Delphi Umfeld sehr verbreitet.
Im Ferrari einen Marathon zu fahren ist auch nicht sportlicher als gleich einen 100m Sprint laufen.
Das ist mal der pragmatische Grund warum Properties sehr bliebt waren/sind neben den hier angeführten Gründen.
Und man sieht es im Objektinspector.
Das kann auch für ReadOnly-Property gut sein. z.B. um dort einen internen Komponenten-Status oder die Verison anzuzeigen.
Und selbst Write-Only-Property gibt es, die manchmal ganz nett sind.