Heim Backend-Entwicklung C#.Net-Tutorial C#s Unterstützung für das Observer-Muster (1)

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

Dec 21, 2016 pm 02:55 PM

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)!


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Zugriffsmodifikatoren in C# Zugriffsmodifikatoren in C# Sep 03, 2024 pm 03:24 PM

Leitfaden zu den Zugriffsmodifikatoren in C#. Wir haben die Einführungstypen von Zugriffsmodifikatoren in C# zusammen mit Beispielen und Ausgaben besprochen.

C#-Serialisierung C#-Serialisierung Sep 03, 2024 pm 03:30 PM

Leitfaden zur C#-Serialisierung. Hier besprechen wir die Einführung, die Schritte des C#-Serialisierungsobjekts, die Funktionsweise bzw. das Beispiel.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

See all articles