Ich schmeiße hier mal eine andere Möglichkeit in den Raum.
Wenn ich programmiere, dann versuche ich nach SOLID zu programmieren.
Daher versuche ich meine Geschäftsobjekte nicht für andere Dinge zu erweitern.
"single responsibility principle"
Die Änderungserkennung ist für mich ein andere Geschäftsvorgang, weil dieses wird ggf. auch nicht in überall benötigt.
Meine Änderungserkennung ist mit den
RTTI und Attributen umgesetzt:
https://youtu.be/pvi7-c6tGMo
Die Attribute müsste man in deinem Fall nicht einmal benutzen.
Alternativ zu meiner Umsetzung, werfe ich auch das Pattern UnitOfWork in den Raum.
Den Setter zu nutzen, halte ich allerdings für eine gute Lösung.
Man könnte alternativ einfach über einen BUS und ein Ereignis, die Änderung "global" zur Verfügung stellen.
Ha! - Video Idee - ich wollte sowieso mal den Delphi-BUS zeigen.
Die "Liste", welche du haben möchtest, hab ich auch umgesetzt. Es hat mir einfach zu stark in den Fingern gejuckt.
Das Video muss ich allerdings noch schneiden. Der Teil hatte kein Platz mehr in dem ersten, weil ich versuche zwischen 10-15 Minuten zu bleiben.
Ich denke das Video lade ich bis nächsten Montag in den Kanal.