Inhaltsverzeichnis:
Definition - Was bedeutet Shim?
Shim in C # ist eine Vorlagenklasse, die von einer Basisklasse mit abgeleiteten Klassen abgeleitet ist, die die Daten und das Verhalten der Basisklasse erben und nur im Typ variieren. Die abgeleitete Klasse der Shim-Klasse verwendet die von der Shim-Klasse bereitgestellte Implementierung erneut.
Shim kann so entworfen werden, dass es als dünne Kompatibilitätsschicht fungiert, wodurch Kompatibilitätsprobleme behoben werden können, die bei der Entwicklung neuerer Versionen von Anwendungen auftreten können. Es wird auch verwendet, um Anwendungen auf Softwareplattformen auszuführen, für die sie ursprünglich nicht entwickelt wurden.
Im Allgemeinen wird die Shim-Klasse hauptsächlich verwendet, um den Zugriff auf Funktionen nur über die abgeleiteten Klassen der Shim-Klasse zu ermöglichen. Dieser Ansatz trägt zur Erweiterung des Codes bei. Es verhindert auch das Duplizieren von Code und vermeidet Fehler durch Ausschneiden und Einfügen. Dies kann geringere Kosten und weniger Wartung bedeuten.
Techopedia erklärt Shim
Eine Shim-Klasse ist eine Template-Klasse, die als Parameter type verwendet. Es kann auf jeder Ebene einer Vererbungskette verwendet werden und bietet eine bessere Pflege und Erweiterung der Hierarchie.
Eine Shim-Klasse kann mithilfe von Containment- und Aggregationsmethoden implementiert werden. Im Falle eines Containment-Ansatzes leitet die Shim-Klasse ihre Aufrufe an die Neuimplementierung der Schnittstelle weiter, um zusätzliches Verhalten bereitzustellen. Bei der Aggregationsmethode wird die Schnittstelle zur inneren Klasse an das äußere Objekt übergeben, und es gibt keine Spezialisierung des Verhaltens des inneren Objekts.
Beispielsweise ist Wine ein Shim, mit dem viele Windows-Anwendungen auf Betriebssystemen wie Linux, Solaris usw. ausgeführt werden können.
In Fällen, in denen der Aufruf von nicht verwaltetem Code nach einigen Initialisierungen von verwaltetem Code weitergeleitet werden muss, kann die Shim-Klasse als Wrapper-Klasse verwendet werden. Diese Shim-Klasse kann als allgemeinere Klasse erstellt werden, die nicht direkt verwendet werden kann, sondern die Generierung abgeleiteter Klassen mit gemeinsamer Funktionalität ermöglicht. Es hilft beim Erstellen eines Frameworks, bei dem die Shim-Klasse die Verknüpfung zwischen der Basisklasse, die allgemeine Funktionalitäten enthält, und den abgeleiteten Klassen mit angepassten Funktionen bildet.
Ein COM-Shim, der eine Microsoft Office-Hostanwendung und eine verwaltete Erweiterung miteinander verbindet, bietet Sicherheit und isoliert mehrere Microsoft Office-Erweiterungen.
Diese Definition wurde im Kontext von C # geschrieben.