|
|
Objekt zu Subklassenobjekt "wandelbar"? |
|
LionW1 |
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 14.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 14.05.2019, 15:47
Titel: Objekt zu Subklassenobjekt "wandelbar"?
|
|
|
|
|
Hallo,
ich hänge fest an einem Entwurfsmuster, und versuche mein Problem mal so gut es geht zu verdeutlichen. Da ich mich noch nicht sehr lange mit Konzepten der OOP und Matlab beschäftige, entschuldigt wenn das Diagramm nicht sehr professionell wirkt oder ich auch allgemein falschen Gedanken folge.. klärt mich auf.
Gedacht ist die Kommunikation zu einem Modulträger, der bis zu vier Module verschiedener Bautypen fassen kann zu realisieren. Man setzt als Benutzer im Betrieb Parameter eines Moduls und diese werden als Befehl mit einer RTS/DTS-Kennung an den Modulträger und somit die Schnittstelle weitergeleitet. Damit lässt sich das entsprechende Modul adressieren. (siehe Anhang)
Die dargestellte Programmstruktur funktioniert in diese Richtung auch gut, doch die Funktionalität beim erzeugen der Objekte scheint mir eingeschränkt. Es wäre schön wenn der Modultäger anfangs die besetzten/ unbesetzten Plätze eigenständig erkennen und die verbauten Klassen erzeugen kann. Dazu gibt es eine Modulinfo-Funktion (Befehl), die (der) für alle Modultypen bekannt ist und den Modultypen abfragen kann.
In meiner Vorstellung wäre es nun ideal, wenn für jeden Modulplatz (Module.Modul{1-4}) ein Objekt der Klasse Modul im Konstruktor erzeugt wird (unterscheiden sich durch RTS/DTS Kennung), diese die Modulinfo einholen und bei Erkennung eines Modultypen sich eigenständig als Objekt durch die Subklasse ersetzten bzw. "updateden" können.
Hier hakt es. Ist das überhaupt möglich, dass sich ein Objekt der Basisklasse zu einem Objekt der Subklasse wandelt? Es ist ja mit einem handle (Module) an das Modulträgerobjekt gebunden. Oder kann man im Modulträgerobjekt das Handle am gewünschten Platz einfach überschreiben? Beispiel: obj.Module{3} = ModultypA(obj,3).. bei Erkennung eines Modultypen A an Modulplatz 3, wenn an obj.Module[3] vorher ein Objekt der Basisklasse Modul existiert hat? Ich finde da keine elegante Lösung.
Ich hoffe meine Gedanken sind erkenntlich? Ich wäre für Tipps Realisierung dankbar.
Beschreibung: |
|
Download |
Dateiname: |
Pic.PNG |
Dateigröße: |
38.17 KB |
Heruntergeladen: |
464 mal |
|
|
|
|
|
LionW1 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 3
|
|
|
|
Anmeldedatum: 14.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.05.2019, 07:52
Titel:
|
|
Vielleicht noch genauer. Es geht um eine Art "dynamische Erweiterung" eines Objekts. Die Instanz der Klasse Modul merkt dass sie weitete Funktionalitäten besitzt, und erweitert sich selbstständig durch neu Attribute und Methoden einer erbenden Klasse. Geht sowas?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|