Zum Hauptinhalt Zur Navigation

Golem Plus Artikel
Strategy Design Pattern Type Erasure:
Diese Dokument-Klassen kennen keine Verwandten

C++ Designmuster
Die zweite Station unserer Designmuster-Reihe führt uns zu einem sehr interessanten Pattern: Type Erasure. Es ist nicht einfach, wir geben Hilfestellung.
/ Adam Jaskowiec
2 Kommentare News folgen (öffnet im neuen Fenster)
Type Erasure wird gern genutzt, wenn man in objektorientierten Sprachen Vererbung beschränken will. (Bild: Nigelwood1956/Pixabay)
Type Erasure wird gern genutzt, wenn man in objektorientierten Sprachen Vererbung beschränken will. Bild: Nigelwood1956/Pixabay

Type Erasure ist eine Kombination aus verschiedenen Designmustern. Der Zweck dieser Technik kann vielfältig sein, jedoch wird sie häufig als Alternative oder Ersatz angesehen, um Vererbung per Dynamic Polymorphism in objektorientierten Sprachen einzuschränken oder loszuwerden.

Bei objektorientierten Sprachen wie C++ wird trotz der Vorteile bei der Strukturgestaltung eine extensive Nutzung von Vererbung zunehmend kritisch gesehen - besonders wenn es auf Performance ankommt. Vererbung per Dynamic Polymorphism, also unter Einsatz von virtuellen Methoden, bringt eine zusätzliche Entscheidungsschicht zur Laufzeit der Anwendung ein. Das erfordert bei jedem Aufruf von virtuellen Methoden intern zusätzliche Verarbeitungsschritte und kann sich negativ auf die Performance auswirken. Type Erasure, das wir in diesem Artikel mit einem Praxisbeispiel erklären, kann hier und in anderen Anwendungsfällen helfen.

Golem Plus Artikel