Unterschied: Polymorphie und Dynamisches Binden

JonasJJ

Neues Mitglied
Hallo zusammen,

Ich habe die Aufgabe Polymorphie und Dynamisches Binden kurz zu erklären.

Meine Erklärung zuPolymorphie: Man kann eine Varialble ein Objekt eines anderen Typens zuweisen, wenn dieses Objekt von dem Typ der Variable erbt.

Kann man die Erklärung so stehen lassen?

Zu Dynamisches Binden: Da ich keine Ahnung hatte, was damit gemint war, habe ich kurz gegooglet und habe den Wikipedia Artikel durchgelesen. Es scheint mir als würde Dynamisches Binden das gleiche wie Polymorhie sein, stimmt das?

Liebe Grüße,

Jonas
 

Ich hatte unter dynamischen Binden ehrlich gesagt gerade was ganz anderes gemeint.
Eher so in Richtung Dynamic Link Libraries (DLL) und JARs, aber wenn die Frage darauf bezogen war dieser Link beschreibt, dann gehört dynamisches Binden zur Polymorphie und meint nichts anderes, als dass immer die "passendste" Methode ausgewählt wird. Also immer erst die Methode mit dem genauen Typ, ehe eine Methode mit einer Oberklasse verwendet wird.
 
So, jetzt geht es ans Eingemachte. Dynamisches Binden!!!

Stell Dir vor, Du muss ein Programm schreiben, das Daten entgegennimmt und speichert.
Also eine typische Webanwendung. Nehmen wir einen Webshop beispielweise.

Den Webshop willst Du verkaufen, Du weiß aber nicht, wie die Käufer Ihre Daten speichern
- Haben diese eine klassische Datenbank
- eine InMemoryDatenbank
- oder speichern Sie evtl sogar auf Festplatte.

Was Du also machst, ist ein Interface "SpeicherInterface" erstellen.
Das Interface wird von 3 Klassen verwendet:
- SpeicherDB
- SpeicherIM
- SpeicherFP

Jetzt kann man zur Laufzeit - also kundenindividuell - festlegen, welche der drei Klassen Verwendung finden sollte. Hierzu legt man beim Kunden eine sogenannte property-Datei an (Das ist eine stinknormale Textdatei mit Schlüssel-Wert Paaren). In der Property Datei trägt man ein, welche Klasse bei jedem Kunden verwendet werden soll. Also: Hat der Kunde eine normale DB, dann wird in der Propertydatei SpeicherDB eingetragen.

Zur Laufzeit fragt Dein Coding, was in der Propertydatei steht und instanziert dann dynamisch die Speicherklasse; beispielsweise mit einer if-Abfrage. (Es gibt noch die Refelction-API; aber das würde Dich zu sehr verwirren)
Grüße
Mario
 
OK, das hat mich bei meiner Ehre gepackt 🙂
Hier wird
das Strategy Pattern erklärt (nicht erschrecken).

An der 8:50 Minute findet genau das dynamische Binden statt:
Man hat drei Klassen, die alle das Interface Collections implementieren.
Zur Laufzeit wird aber dann dynamisch festgelegt, welche konkrete Klasse verwendet werden soll.

Ich kann nur sehr das Buch "Entwurfsmuster von Kopf bis Fuß" empfehlen. Wenn man das durchgeackert hat, ist man in der objektorientierten Welt angekommen.

Ich hoffe, das hilft 🙂

Grüße
Mio
 
Ich glaube der Begriff "dynamisches Binden" hat in der Software Welt einfach so viele (mehrere) Bedeutungen, dass das ganze Thema verwirrend ist.
 

Neue Themen


Zurück
Oben