Unterschied zwischen Visitor und Decorater

dg87

Erfahrenes Mitglied
Hallo,

wie der Titel schon sagt, wo ist denn der Unterschied zwischen den beiden Pattern. Beide fügen in der Laufzeit neue Funktionen hinzu****
 
Erst mal generell ist das Visitor-Entwurfsmuster ein Verhaltensmuster und das Decorator-Entwurfsmuster ein Strukturmuster. Beim Visitor erledigst du die Instanzenübergabe dadurch, dass du durch eine visit-Methode seitens Visitors die Instanz des Besuchten verarbeitest, welche diese wiederum über eine eigene accept-Methode abgibt. Du konzentrierst dich somit nicht auf eine Instanz, sondern kannst sie bei jedem Aufruf wechseln. Beim Decorator hingegen übergibst du die Instanz eines Objektes an einen Decorator, welcher die gleichen Methoden wie das übergebene Objekt hat. Die Instanz des Objektes wird dann für diese Instanz des Decorators gespeichert und du rufst nun die Methoden dessen auf. Es sieht nun so aus, als würdest du das dekorierte Objekt aufrufen, obwohl du den Decorator aufrufst.
 
Ich versteh den Unterschied so nicht.
Könntest du mi das ohne Programmier Deutsch erklären bitte.
Fakt ist, beide fügen doch Methoden bzw funktionen zu oder entfernen Sie oder?
 
Zurück