Delegation (Softwareentwicklung)
Delegation (von englisch delegation ‚Abordnung‘, ‚Übertragung‘) hat in der objektorientierten Programmierung verschiedene Bedeutungen, die alle mit dynamischer Methodenbindung zur Programmlaufzeit zu tun haben:
- insbesondere in .NET-Sprachen wie C# eine objektorientierte Variante von Methodenzeigern.
- objektbasierte Vererbung (im Gegensatz zur üblichen klassenbasierten Vererbung). Hierbei übernimmt ein Objekt (automatisch) Eigenschaften und Funktionalitäten, die es selbst nicht explizit definiert, von einem anderen konkreten Objekt, seinem Prototyp.
- ursprünglich die Implementierung von Methoden eines Objekts durch Aufruf äquivalenter Methoden eines anderen Objekts, auch englisch consultation (für Absprache, Beratung) oder invocation (Aufruf) genannt. Diese Variante passt zu den Entwurfsmustern Proxy und Adapter.
- Die Sprache Objective-C kennt das Schlüsselwort delegate als Funktionalitätsspezialisierung: Hier kann ein Objekt zur Laufzeit nach einer beliebigen Funktionalität (Methode) befragt werden. Diese wird dann im Kontext des fragenden Objekts eventuell ausgeführt, als sei sie Teil des fragenden Objekts.
- ↑ Dirk Louis und Shinja Strasser, Microsoft Visual C# 2008 – Das Entwicklerbuch, Microsoft Press Deutschland, 2008, ISBN 978-3-86645-507-8, Kapitel Delegaten und Ereignisse
- ↑ Henry Lieberman, Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems, in: OOPSLA, 1986, S. 214–223.
- ↑ Günter Kniesel, Type-Safe Delegation for Run-Time Component Adaption ( vom 12. Dezember 2013 im Internet Archive) (PDF; 72 kB), ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming, Springer-Verlag London, 1999, table of contents ISBN 3-540-66156-5.
- ↑ Zur begrifflichen Abgrenzung siehe Darwin Projekt – What is (Not) Delegation ( vom 13. Februar 2013 im Internet Archive), Uni Bonn (englisch)