Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   message <> methode oder? (https://www.delphipraxis.net/33357-message-methode-oder.html)

Nicodius 5. Nov 2004 16:30


message <> methode oder?
 
unser grundlagen der edv professor hat uns erklärt das die "message" (wir machen das ganze auf englisch durch) bei dem UML wie eine methode ist ich dachte eine message wäre der "auslöser" für eine aktion(methode) ?

alcaeus 5. Nov 2004 16:35

Re: message <> methode oder?
 
Hi Nico,

Zitat:

Zitat von Nicodius
unser grundlagen der edv professor hat uns erklärt das die "message" (wir machen das ganze auf englisch durch) bei dem UML wie eine methode ist ich dachte eine message wäre der "auslöser" für eine aktion(methode) ?

AFAIK wird in UML eine Message wie eine Methode dargestellt, weil auf die Message ja eine Methode folgt, sonst würde dich die Message nicht interessieren und somit auch nicht im UML-Diagramm zu finden sein. Aber im Grunde genommen ist der Unterschied da.

Greetz
alcaeus

Nicodius 5. Nov 2004 16:51

Re: message <> methode oder?
 
danke!

alcaeus .. denke er muss es so gemeint haben, viele dank!

wunderte mich ein bisschen ;)

choose 5. Nov 2004 16:54

Re: message <> methode oder?
 
Hallo Nicodius,

wenn Du objektorientiert sprichst, schickt der Klient (zB Dein Programm) einem Exemplar (einem Objekt, fälschlich oft als Instanz übersetzt) einer Klasse, zu dem der Klient jedoch nur den Typ kennt (in Delphi Fallen Typ und Klasse häufig zusammen, ausnahmen bilden aber zB abstrakte Klassen und Interfaces), eine Nachricht, gekennzeichnet durch deren Signatur (in Delphi: Namen und Typen des Rückgabewerts sowie Parameter und deren Reihenfolge).
Das Auflösung der Nachricht, dem Finden der geeigneten Methode des Exemplars (die Methode kann als "Implementierung der Nachricht" verstanden werden) kann unter Umständen erst zur Laufzeit bestimmt werden, weil es möglich ist, Methoden zu überschreiben (diesen Effekt nennt man Polymorphie).

Ich hoffe, dass ich Dir mit dieser ad hoc-Darstellung etwas weiterhelfen konnte und habe mit Sicherheit zu neuen Fragen angeregt ("was ist ein Typ?", "wie wird beim Überladen vorgegangen?", "wie genau Spielen Typ und Klasse zusammen?") und Deinem Professor nur Recht geben, wenn er sagt, dass eine Nachricht der Auslöser für die Aktivierung einer Methode ist (ach, ich mag die deutsche Sprache! ;)).

nailor 5. Nov 2004 23:23

Re: message <> methode oder?
 
Zitat:

Zitat von choose
... einem Exemplar (einem Objekt, fälschlich oft als Instanz übersetzt)...

Ich bitte um kurze Begründung für das fälschlich.

Nicodius 5. Nov 2004 23:28

Re: message <> methode oder?
 
das mit dem auslöser sag ICH ja


ER sagt das es gleichzusetzen ist mit einer methode ICH sage das es ein auslöser ist ;)


aber hat er also recht oder?

choose 6. Nov 2004 02:30

Re: message <> methode oder?
 
Hallo nailor,

ein Blick ins Wörterbuch ("instance"), in den Duden ("Instanz") oder die Suche nach Bei Google sucheninstance instanz exemplar sollten entsprechde Eregebnisse an den Tag führen.

Den Beitrag "Das Wort zum Montag – professionelle Fachsprache in Deutsch und Englisch" von Peter Löhr konnte ich so zB finden.

edit: Tippfehler

choose 6. Nov 2004 02:57

Re: message <> methode oder?
 
Hallo Nicodius,

Nachrichten, auch bekannt als Operationen sind in diesem Beitrag kurz umrissen.

Um den Kern meiner Aussage hervorzuheben: Eine Operation kann definiert werden, ohne dass eine Methode implementiert worden ist. Es können beliebig viele Methoden exisiteren, aus denen "das Laufzeitsystem" zur "Beantwortung" einer Nachricht (Operation) wählt.

In einigen Diagrammen der UML (zB dem Klassendiagramm) werden (Klassen-)Operationen modelliert und stellen tatsächlich zT konkrete Methoden dar (sofern nicht kursiv markiert oder Teil eines Schnittstelle). Möchtest Du, wie in Delphi zB möglich, eine Klasse mehrere Schnittstellen (Interfaces) implementieren lassen, könnten auf diese Weise Operationen im Interface definiert werden, eine Bindung andersbenannter Methoden zu Operationen identischer Signatur unterschiedlicher Interfaces können jedoch nur schwer ausgedrückt werden.
Delphi-Quellcode:
type
  IMyInterface = interface
    function InkrementiereZaehler: Integer; stdcall;
    function DekrementiereZaehler: Integer; stdcall;
  end;

  TMyObject = class(TObject, IInterface, IMyInterface)
  private
    function ErhoeheZaehler: Integer; stdcall;
    function VeringereZaehler: Integer; stdcall;
    function ErfrageSchnittstelle(const IID: TGUID; out Obj): HResult; stdcall;

    function IInterface._AddRef = ErhoeheZaehler;
    function IInterface._Release = VeringereZaehler;
    function IInterface.QueryInterface = ErfrageSchnittstelle;

    function IMyInterface._AddRef = ErhoeheZaehler;
    function IMyInterface._Release = VeringereZaehler;
    function IMyInterface.QueryInterface = ErfrageSchnittstelle;
    function IMyInterface.InkrementiereZaehler = ErhoeheZaehler;
    function IMyInterface.DekrementiereZaehler = VeringereZaehler;
  end;
Bei dynamischen Proxies oder einem "double dispatch" aus Smalltalk stößt diese Art der Darstellung ebenfalls an seine Grenzen. Zwar lassen sich die Methoden zu "messageNotUnderstood" etc. modellieren, der semantische Zusammenhang geht jedoch ohne Kommentare verloren.

Andere Diagramme der UML (zB Sequenzdiagramme oder Aktivitätsdiagramme) abstrahieren jedoch von einer konkreten Methode und stellen dar, dass einem Objekt eine "Nachricht" gesendet wird.

Nicodius 6. Nov 2004 06:54

Re: message <> methode oder?
 
also stimmt beides choose :?:

nailor 6. Nov 2004 11:37

Re: message <> methode oder?
 
Zitat:

Zitat von choose
Hallo nailor,

ein Blick ins Wörterbuch ("instance"), in den Duden ("Instanz") oder die Suche nach Bei Google sucheninstance instanz exemplar sollten entsprechde Eregebnisse an den Tag führen.

Den Beitrag "Das Wort zum Montag – professionelle Fachsprache in Deutsch und Englisch" von Peter Löhr konnte ich so zB finden.

edit: Tippfehler

Ich muss aufs Schärfste protestieren, da es sich hier dann offensichtlich nicht zwangsläufig um eine Fehlübersetzung, sondern eventuell einfach um eine Eindeutschung handelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz