Heim  >  Artikel  >  Backend-Entwicklung  >  C#s Unterstützung für das Observer-Muster (1)

C#s Unterstützung für das Observer-Muster (1)

黄舟
黄舟Original
2016-12-21 14:55:511251Durchsuche

Lassen Sie uns zunächst verstehen, was das Beobachtermuster ist. Es handelt sich um ein Verhaltensmuster von Objekten, das auch als Abhängigkeits-/Slave-Muster, Publish-Subscribe-Muster und Source-Listening-Muster bezeichnet wird. Beobachtermuster: Definiert eine Eins-zu-Viele-Abhängigkeitsbeziehung zwischen Objekten. Wenn sich der Status eines Objekts ändert, werden alle davon abhängigen Objekte benachrichtigt und automatisch aktualisiert (GOF).

Zum Beispiel gibt es in unserem Projekt ein E-Mail-System. Wenn Sie eine E-Mail senden, müssen Sie möglicherweise eine Mobiltelefon-Textnachricht und RTX-Informationen senden, um den E-Mail-Empfänger zu benachrichtigen Beobachtermodus zum Entwerfen. Wenn Sie in Zukunft eine dritte Nachricht hinzufügen müssen, drei Benachrichtigungsmethoden, dann fügt unser System problemlos neue Benachrichtigungsmethoden hinzu. Das Beobachtermuster wird in C# häufig verwendet. Am häufigsten verwenden wir den Ereignisüberwachungsmechanismus verschiedener Steuerelemente.

Es gibt vier Arten von Teilnehmern bei der Implementierung des Beobachtermusters, nämlich:

1. Abstraktes Subjekt/Ziel (Subjekt)

Es kann eine beliebige Anzahl von Beobachtern haben und speichert einen Verweis auf den Beobachter in einem Sammlungsobjekt und stellt eine Schnittstelle zum Hinzufügen und Löschen von Beobachterobjekten bereit, die normalerweise mit einer abstrakten Klasse und Schnittstelle implementiert wird.

2. Abstrakter Beobachter (Beobachter)

Eine für alle konkreten Beobachter definierte Aktualisierungsschnittstelle. Wenn sich das Subjekt/Ziel ändert, werden die spezifischen Beobachter benachrichtigt, sich selbst zu aktualisieren. Wird normalerweise mit einer abstrakten Klasse oder Schnittstelle implementiert.

3. Konkretes Subjekt/Ziel (ConcreteSubject)

Speichern Sie den relevanten Status im spezifischen Beobachterobjekt. Benachrichtigen Sie alle registrierten Beobachter. Das konkrete Subjekt/Ziel wird auch das Beobachtete genannt.

4. Konkreter Beobachter

Behalten Sie einen Verweis auf ein bestimmtes Subjekt/Ziel bei, speichern Sie relevante Zustände im Einklang mit dem spezifischen Subjekt/Ziel und implementieren Sie eine bestimmte abstrakte Beobachter-Aktualisierungsschnittstelle, um ihren eigenen Zustand beizubehalten passend zum Thema/Zielzustand.

Wir verwenden den Beobachtermodus, um ein einfaches E-Mail-Versandsystem zu implementieren, und beim Senden der E-Mail senden wir SMS- und RTX-Nachrichten, um den E-Mail-Empfänger zu benachrichtigen.

Das Obige ist der Inhalt der C#-Unterstützung für den Observer-Modus (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn