Heim > häufiges Problem > Was ist das Beobachtermuster?

Was ist das Beobachtermuster?

Guanhui
Freigeben: 2020-06-28 16:12:29
Original
4422 Leute haben es durchsucht

Das Beobachtermuster ist ein Objektverhaltensmuster, das eine Eins-zu-Viele-Abhängigkeitsbeziehung zwischen Objekten definiert. Wenn sich der Zustand eines Objekts ändert, werden alle davon abhängigen Objekte benachrichtigt und automatisch aktualisiert, wodurch sich eine Verbesserung ergibt Wartbarkeit und Wiederverwendbarkeit von Anwendungen.

Was ist das Beobachtermuster?

Das Beobachtermuster ist ein Objektverhaltensmuster. Es 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. Im Beobachtermuster ist das Thema der Herausgeber von Benachrichtigungen. Wenn es Benachrichtigungen ausgibt, muss es nicht wissen, wer seine Beobachter sind, die Benachrichtigungen abonnieren und empfangen können. Das Beobachtermuster wird nicht nur häufig bei der Interaktion zwischen Softwareschnittstellenelementen, sondern auch bei der Interaktion zwischen Geschäftsobjekten, der Berechtigungsverwaltung usw. verwendet.

Das Observer-Muster trennt den Beobachter perfekt vom beobachteten Objekt. Beispielsweise kann die Benutzeroberfläche als Beobachter fungieren und die Geschäftsdaten werden beobachtet. Die Benutzeroberfläche beobachtet Änderungen in den Geschäftsdaten und nachdem sie Änderungen in den Daten festgestellt haben, werden diese auf der Benutzeroberfläche angezeigt. Ein Prinzip des objektorientierten Designs besteht darin, dass sich jede Klasse im System auf eine bestimmte Funktion und nicht auf andere Aspekte konzentriert. Ein Objekt macht eine Sache und zwar gut. Das Observer-Muster zieht klare Grenzen zwischen Modulen und verbessert so die Wartbarkeit und Wiederverwendbarkeit von Anwendungen.

Das Beobachter-Entwurfsmuster definiert eine Eins-zu-Viele-Kombinationsbeziehung zwischen Objekten, sodass alle davon abhängigen Objekte benachrichtigt und automatisch aktualisiert werden, wenn sich der Zustand eines Objekts ändert.

So implementieren Sie das Beobachtermuster

Es gibt viele Möglichkeiten, das Beobachtermuster zu implementieren. Grundsätzlich muss das Muster zwei Rollen enthalten: den Beobachter und das beobachtete Objekt. Im aktuellen Beispiel sind die Geschäftsdaten das beobachtete Objekt und die Benutzeroberfläche der Beobachter. Es besteht eine logische Beziehung der „Beobachtung“ zwischen dem Beobachter und dem Beobachteten. Wenn sich das Beobachtete ändert, wird der Beobachter diese Änderungen beobachten und entsprechend reagieren. Wenn ein solcher Beobachtungsprozess zwischen der Benutzeroberfläche und den Geschäftsdaten verwendet wird, kann er eine klare Grenze zwischen der Schnittstelle und den Daten sicherstellen. Unter der Annahme, dass sich die Anforderungen der Anwendung ändern und die Schnittstellenleistung geändert werden muss, muss nur eine Benutzeroberfläche geändert werden Geschäftsdaten müssen neu erstellt werden.

Beobachtermuster-Nutzungsszenarien

1. Wenn ein abstraktes Modell zwei Aspekte hat, von denen einer vom anderen abhängt. Kapseln Sie die beiden in separate Objekte, damit sie unabhängig voneinander geändert und wiederverwendet werden können.

2. Wenn die Änderung eines Objekts gleichzeitig die Änderung anderer Objekte erfordert, ist nicht bekannt, wie viele Objekte geändert werden müssen.

3. Wenn ein Objekt andere Objekte benachrichtigen muss, aber nicht annehmen kann, wer die anderen Objekte sind. Mit anderen Worten: Sie möchten nicht, dass diese Objekte eng miteinander verbunden sind.

Empfohlenes Tutorial: „PHP-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist das Beobachtermuster?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle: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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage