INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Dieses Thema hat akzeptierte Lösungen:

Objekte verschiedener Kindklassen vergleichen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.06.2019, 09:50
Beitrag #1

seuk Offline
LVF-Grünschnabel
*


Beiträge: 38
Registriert seit: May 2018

2019x64
-
EN


Deutschland
Objekte verschiedener Kindklassen vergleichen
Hallo Zusammen,

ich fange gerade erst damit an, mir ein wenig Objektorientierung in LV anzuschauen und bin bereits auf ein Problem gestoßen:

Der Versuch dient dazu ein Modul "Settings Editor" zu erstellen, welches alle Einstellungsoptionen für verschiedene Module enthält. Ich möchte zwar nicht zu weit ausholen, doch ein bisschen Kontext schadet meist auch nicht.

Ich habe eine Elternklasse: AbstractSetting
Und zwei Kindklassen: ConcreteSettingA, ConcreteSettingB

Nun sollen meine Module jeweils ein Array von AbstractSetting haben, der "Settings Editor" hält für jedes Modul entsprechend das gleiche Array. Tatsächlich werden in den Arrays natürlich verschiedene Objekte der Kindklassen gespeichert. Beim Start des Programm, läd der "Settings Editor" eine XML Datei, füllt seine Arrays und verteilt die Settings an die Module. Nun verstellt der Anwender diverse Einstellungen in der GUI des "Settings Editor" und drückt auf OK. In dem Moment habe ich zwei Arrays von AbstractSettings, eines enthält die aktuellen Daten, ein anderes die neuen. Nun sollen nur die tatsächlichen Änderungen an den Kindklassen an die Module propagiert werden. Wie finde ich die heraus?

Mein Ansatz:
Ich durchlaufe die Arrays in einer Schleife
if AbstractSettingNeu[0].isEqual(AbstractSettingAlt[0]) == false
AbstractSettingNeu[0].broadcastSettingsChange()

Ich kann eine Methode broadcastSettingsChange() in der Elternklasse erstellen, und in der Kindklasse überschreiben (Stichwort Dynamic Dispatch).

Ich kann aber keine Methode isEqual in der Elternklasse erstellen, welche zwei Inputs von AbstractSetting mit Dynamic Dispatch zulässt. Ist ja auch klar, woher soll LV wissen, welche Kindklasse die Methode überschreibt, wenn es mit zwei verschiedenen Kindklassen aufgerufen werden würde?

Ich stehe leider gerade etwas auf dem Schlauch und würde mich über Hinweise freuen. Huh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
Objekte verschiedener Kindklassen vergleichen - seuk - 27.06.2019 09:50

Gehe zu: