Nach unserem Verständnis erstellt das Adaptermuster ein Wrapper-Objekt für unser eigentliches interessierendes Objekt, einfach eine weitere Indirektionsebene, die Flexibilität bietet. Die Flexibilität besteht darin, dass, wenn die Schnittstelle des realen Objekts geändert wird, die Wrapper-Schnittstelle geändert wird, die auf das reale Objekt zeigt, und die clientseitig offen gelegte Schnittstelle unverändert bleibt.
Das Proxy-Muster ist das gleiche, mit dem Unterschied, dass jeder Proxy-Wrapper nur eine zusammenhängende Teilmenge der Funktionalität des realen Objekts bereitstellt. Warum wäre dies nützlich, wenn wir uns bemühen, "eine Klasse für einen Zweck" zu schaffen, ist mir ein Rätsel.
Habe ich das richtig verstanden?
quelle
Ich mag diese Erklärung:
Der Proxy ändert das Verhalten des Dienstes, behält jedoch seine Schnittstelle bei.
Der Adapter ändert die Schnittstelle des Dienstes, behält jedoch sein Verhalten bei.
Quelle: https://www.netobjectives.com/PatternRepository/index.php?title=AdapterVersusProxyVersusFacadePatternComparison
quelle