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

Interaktion zwischen Objekten

 

Dschiehses
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 12.01.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.03.2014, 19:43     Titel: Interaktion zwischen Objekten
  Antworten mit Zitat      
Hallo zusammen,

ich habe eine Frage bezüglich der Abhängigkeiten von Objekten untereinander.

Folgendes Szenario: Ich habe ein "Mutter-Objekt" (KEINE superclass mit Vererbung) mit Namen sim.Run, was Daten einer Simulation speichert. Die einzelnen Komponenten der Simulation sind wiederum Objekte, die in einem Cell-Array im Mutterobjekt gespeichert sind. Beispielhaft folgender Code:

Code:

classdef Run < matlab.mixin.copyable
  properties
    param;
    components;
  end

  methods
    function obj = Run(param, models)
      obj.param = param;
     
      obj.createComponents(models);
    end
  end

  methods (Access=private)
    function createComponents(obj, models)
      % beispielhaft:
       obj.components{1} = sim.components.Objekt1();
       obj.components{2} = sim.components.Objekt2();
       % ...
    end
  end
end
 


Jetzt möchte ich, dass beispielsweise das components.Objekt1 Objekt einen Wert aus dem param Struct des sim.Run-Objekts liest.

Die components-Objekte sind alles handle bzw. matlab.mixin.copyable Objekte.

Ist es sinnvoll, bei der Instanziierung der components-Objekte als Eingabeparameter das "Mutterobjekt" sim.Run mitzugeben? Also beispielsweise:
Code:

        obj.components{1,1} = sim.component.Objekt1(obj);
 

Da alles handle-Objekte sind, sollte ja nur die Referenz übergeben werden. Allerdings ergibt das dann eine "Endlosschleife" aus Referenzen. Run enthält Objekt1, was wiederum auf Run verweist, usw.

Ist diese Methode sinnvoll, oder gibt es eine bessere?


Eine weitere Frage, die losgelöst hiervon ist (wofür ich aber kein neues Thema eröffnen möchte):

Ich nutze eine komplett OOP-basierende GUI, also ohne GUIDE. Irgendwo habe ich aufgeschnappt (wenn ich mich recht erinnere im Matlab FileExchange), dass Callback-Funktionen nicht als normale Objekt-Methoden erstellt werden sollen, da das zu einem Memory Leak führen soll. Stattdessen sollte man Callbacks entweder static deklarieren oder als "Helper-Funktion" nach der Klassendefinition aufführen.

Was ist dort die beste Methode?

Vielen Dank,
Jan
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.