Einzelnen Beitrag anzeigen

Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#48

Re: Basisklasse und davon abgeleitet drei Standardklassen

  Alt 10. Okt 2007, 11:20
So musst Du aber immer den genauen Typ kennen. TMyEdit kannst Du nicht als TMyLabel ansprechen usw., da ja die Basisklasse fehlt (sie haben keinen gemeinsamen Nenner). Sprich Du kannst Deine Elemente nicht in eine Liste packen (ausser als Controls vielleicht) und musst immer mit Is fragen, welches es ist (bei TMyEdit-Instanz in variable geht eben nicht TMylabel(variable).Property, wegen der anderen vmt). Damit bist Du nicht erweiterungsfähig. Wenn eine Neue Klasse dazukommt, musst Du den Code umschreiben, der diese Klassen benutzt und das widerspricht dem Sinn der Objektorientierung.
Mit dem Interface hast Du ein z.B. Array of IMyInterface oder TInterfaceList und kannst alle ansprechen, ohne auf die eigentliche Natur der Elemente rücksicht nehmen zu müssen. Zudem kannst Du hier einfach einen TMyButton mit diesem Interface neu erfinden und ohne weiteres in dieses Array stecken.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat