![]() |
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) ?
|
Re: message <> methode oder?
Hi Nico,
Zitat:
Greetz alcaeus |
Re: message <> methode oder?
danke!
alcaeus .. denke er muss es so gemeint haben, viele dank! wunderte mich ein bisschen ;) |
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! ;)). |
Re: message <> methode oder?
Zitat:
|
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? |
Re: message <> methode oder?
Hallo nailor,
ein Blick ins Wörterbuch ("instance"), in den Duden ("Instanz") oder die Suche nach ![]() Den Beitrag ![]() edit: Tippfehler |
Re: message <> methode oder?
Hallo Nicodius,
Nachrichten, auch bekannt als Operationen sind ![]() 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:
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.
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; 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. |
Re: message <> methode oder?
also stimmt beides choose :?:
|
Re: message <> methode oder?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz