Coldfusion: Lese- und Schreibzugriffe auf gemeinsame Variablen sperren

Den meisten mittel bis weit fortgeschrittenen CF-Entwicklern ist das oben Gesagte bereits klar. Doch scheinen sich noch viele CFer bei Shared Scopes und Instanzen von Coldfusion Components (CFC) unsicher zu sein.

CFCs sind objektähnliche Konstrukte, und sie können in jeden gemeinsamen Variablenbereich instanziiert werden. Dadurch hat sich CF-Entwicklern eine ganz neue Welt eröffnet. Es werden aber auch neue Fragen dazu aufgeworfen, wo und wann Code gesperrt werden muss. Besonders stark scheint die Verwirrung bezüglich der Unterschiede zwischen dem Speichern einer stateless CFC und einer stateful CFC zu sein.

Eine stateless CFC ist eine CFC ohne interne Instanzdaten oder mit Instanz-Daten, die nur sehr selten aktualisiert werden. Mit anderen Worten, ihr interner Status ändert sich nicht, sobald er einmal gesetzt wurde. In CFCs repräsentiert der „variables“-Scope Instanzdaten, was für die Praxis bedeutet, dass eine stateless CFC keine internen Daten im Variable-Scope aktualisiert. Der „this“-Scope kann auch Instanzdaten beinhalten, doch weil er öffentlich ist, wird das oft vermieden.

Dagegen enthält eine stateful CFC Instanzdaten, die sich ändern. Ihr innerer Status verändert sich und Daten innerhalb ihres Variable-Scopes werden modifiziert. Der Unterschied zwischen beiden ist sehr wichtig, da er die zu verwendende Locking-Methode vorgibt.

Als Beispiel dient das folgende Szenario mit einer stateless CFC. Ein Entwickler programmiert eine Applikation, die aktuelle Unternehmensnachrichten anzeigen soll. Er möchte vielleicht eine CFC erzeugen, um Daten und Verhalten in Verbindung mit Nachrichten zu verkapseln. Um dann die Performance zu steigern, könnte diese CFC in den Application-Scope instanziiert werden:


Statt nun jedes Mal, wenn Nachrichtendaten gebraucht werden, eine Instanz der newsManager-Komponente zu erzeugen, kann der Entwickler einfach Methoden auf die CFC-Instanz im Application-Scope anwenden. Für diejenigen, die mit OO Design Patterns vertraut sind: Dies ist eine Implementierung des Singleton-Musters.

Themenseiten: Anwendungsentwicklung, Software, Webentwicklung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Coldfusion: Lese- und Schreibzugriffe auf gemeinsame Variablen sperren

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *