Frage

führen beide die gleiche Operation, die

ist

MSDN

  • Singleton: "" Single Anruf objects Service und nur eine Anforderung kommt in .... „
  • CAO: "Client-aktivierte Objekte (CAO) sind serverseitige Objekte, die vom Client auf Wunsch aktiviert werden ...."

In beiden Fällen werden die Daten nicht geteilt, aber in Singleton nur einmal Client zu einem Zeitpunkt verbunden werden kann, warum sollte jemand, dass Unter welchem ??Szenario ist Singleton nützlich und gibt es mehr Unterschiede in ihnen?

War es hilfreich?

Lösung

Sie missread die Linien. Heres die Definition aus der MSDN. Ich markierte (fett) einige diffrences zwischen diesen Objekten.

  • Single Anruf

    Single Anruf Objekte Service ein und nur eine Anfrage kommt in . Single Call-Objekte sind nützlich in Szenarien wo die Objekte sind erforderlich, um eine zu tun endliche Menge an Arbeit. Single Anruf Objekte werden in der Regel nicht erforderlich, Speicherung von Zustandsinformationen, und sie kann nicht Zustandsinformationen zwischen halten Methodenaufrufe . Allerdings Einzelanruf Objekte können in einem so konfiguriert werden, Lastenausgleich Art und Weise.

  • Singleton Objekte

    Singleton-Objekte sind die Objekte, die Service mehrere Clients und somit Daten gemeinsam nutzen, indem Zustandsspeicher Informationen zwischen dem Client Anrufungen . Sie sind nützlich in Fällen in denen Daten müssen geteilt werden ausdrücklich zwischen Kunden und auch in die die Overhead des Erstellens und Objekte beibehalten ist beträchtlich.

  • Client-Activated Objects (CAO)

    Client-aktivierte Objekte (CAO) sind serverseitige Objekte, die sind auf Anfrage von der aktivierten Client . Diese Art der Aktivierung Server Objekte ist sehr ähnlich der klassischen COM coclass Aktivierung. Wenn der Client sendet eine Anforderung für einen Server Objekt „neuen“ Betreiber, eine mit Aktivierungsanforderungsnachricht wird gesendet die Remote-Anwendung. Der Kellner dann erstellt eine Instanz der angeforderte Klasse und gibt eine ObjRef zurück an die Client-Anwendung, dass aufgerufen es. Ein Proxy wird dann erstellt auf die Client-Seite des ObjRef verwenden. Das Client-Methodenaufrufe werden ausgeführt auf dem Proxy. Client-aktivierte Objekte können Statusinformationen zwischen speichern Verfahren fordert seine spezifischen Kunden und nicht über verschiedene Client Objekte . Jeder Aufruf der „neuen“ gibt einen Proxy an einen unabhängigen Instanz des Servertypen.

State Information ist einige Daten, die Sie speichern in Variablen oder Eigenschaften des Objekts, die Client-Anforderung zu verarbeiten.

Da ein Single Anruf-Objekt erstellt wird, wenn eine Client-Anforderung es einige Arbeit zu tun, und zerstört, nachdem es getan Arbeit hat, kann es nicht Zustandsinformationen halten, weil jede Anforderung ein neues Objekt erstellt (It laden und speichern von Daten in einer Datenquelle kann, es ist Arbeit zu tun).

Singleton Objekt wird nur einmal erstellt (vielleicht am Server starup) und Leben, solange der Server-Prozess ausgeführt wird. Es kann Informationen in Variablen und Eigenschaften Greifen Client-Anfragen speichern, weil jeder Client mit dem gleichen Objekt funktioniert und es isn't nach einem Client-Aufruf zerstört.

Ein einfaches Beispiel die diffrence betwenn einen einziger Aufruf und Singleton Objekt anzuzeigen ist, ein Verfahren increment () zu erstellen, eine Variable (integer) in dem Objekt zu inkrementieren und die Variable auf die Konsole zu schreiben. Der einzelne Objektaufruf wird immer den gleichen Wert an die Konsole aus (1, wenn die Variable beginnt mit 0), während das Singleton-Objekt immer einen inkrementierten Wert Druck (1, 2, 3, usw.) nach jedem Anruf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top