WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Objekt zu Subklassenobjekt "wandelbar"?

 

LionW1
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 14.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.05.2019, 16:47     Titel: Objekt zu Subklassenobjekt "wandelbar"?
  Antworten mit Zitat      
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.

Pic.PNG
 Beschreibung:

Download
 Dateiname:  Pic.PNG
 Dateigröße:  38.17 KB
 Heruntergeladen:  407 mal
Private Nachricht senden Benutzer-Profile anzeigen


LionW1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 14.05.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.05.2019, 08:52     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.