.NET beschleunigen durch Singleton-Objekte

Singletons können ein wertvolles Hilfsmittel zur Steigerung der Performance von .NET-Programmen darstellen, vor allem dann, wenn jeweils nur ein physisches Objekt vorhanden ist. Beim herkömmlichen Programmieren würde man jedes Mal, wenn man eine bestimmte Instanz eines Objekts benötigt, eine Klasse als ein Objekt instanziieren. So würde man beispielsweise ein eigenes Produkt „12“ erstellen, wenn man Zugriff auf die Daten über Produkt „12“ benötigt.

In vielen Fällen, zum Beispiel bei einem Produktkatalog, ist jedoch eine einzelne Persistenz des Objekts in der Datenbank vorhanden, so dass jeweils nur eine Instanz des Objekts erforderlich ist. Nachfolgend soll aufgezeigt werden, wie man Objekte in Singletons konvertiert, um so die Performance und Ressourcennutzung innerhalb des .NET-Entwicklungs-Frameworks zu verbessern.

Das Konstruktor-Problem

Mit dem Aufkommen der objektorientierten Programmierung entstand auch der Ansatz, einen Konstruktor für eine Klasse zu verwenden. Das Objekt muss die Möglichkeit haben, sich selbst zu initialisieren, bevor es an das aufrufende Programm zurückgegeben wird. Dank dieses Vorgangs können interne Datenstrukturen gefüllt und konfiguriert werden.

Das Problem dabei ist nur, dass der Compiler oder die Runtime-Umgebung bereits Speicherplatz für das Objekt zugewiesen haben. Im Grunde wurde das neue Objekt also bereits erstellt und müsste nun nur noch konfiguriert werden.

Aus diesem Grund kann man keinen Konstruktor zusammen mit einem Singleton benutzen. Das Objekt wurde zum Zeitpunkt des Code-Aufrufs bereits teilweise instanziiert und somit kann für die Entwicklung kein Konstruktor eingesetzt werden. Der Konstruktor muss geschützt, privat oder intern eingerichtet werden. Danach kann man den Konstruktor von innerhalb der Klasse aus aufrufen, aber nicht direkt von außen.

Es reicht, einen einzigen Konstruktor zu erstellen, damit der standardmäßige Konstruktor nicht erstellt wird, selbst wenn der selbst erstellte Konstruktor als geschützt, privat oder intern markiert wurde. Auf diese Weise wird gewährleistet, dass kein Code außerhalb des festgelegten Rahmens das Objekt erstellen kann.

Die Rolle der statischen Methoden

Wenn der Entwickler den Konstruktor nicht benutzen kann, kann er auch kein eigenes Objekt erstellen, wodurch die Verwendung des Objekts erschwert wird. Die Nutzung von Elementen, die man nicht erstellen kann, ist sehr schwierig, weshalb man hier auf statische Methoden zurückgreifen sollte. Da diese direkt aus der Klasse heraus operieren, ist keine Instanz erforderlich. Dadurch kann der Entwickler die Methoden aufrufen, bevor er über eine Instanz der Klasse verfügt.

Die Rolle der statischen Methoden besteht darin, im internen Cache nachzusehen, ob die geforderte Instanz des Objekts existiert. Wenn ja, erhält das aufrufende Programm eine Referenz auf diese Instanz. Ist die geforderte Instanz dagegen nicht vorhanden, wird sie automatisch durch die statische Methode erstellt und im internen Cache gespeichert, worauf die Methode eine Referenz auf das Objekt zurückgibt.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

4 Stunden ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

8 Stunden ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

9 Stunden ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

1 Tag ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

2 Tagen ago

Bedrohungen in Europa: Schwachstellen in der Lieferkette dominieren

Hinter 84 Prozent der Zwischenfälle bei Herstellern stecken Schwachstellen in der Lieferkette. Auf dem Vormarsch…

2 Tagen ago