2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
„Wenn der Krieg drei Monate andauert, ist ein Brief aus der Heimat zehntausend Gold wert; wenn das Designmuster stimmt, werden Tausende von Soldaten wie eine Einheit agieren.“
In der großartigen Geschichte der Drei Königreiche war die Schlacht von Chibi zweifellos eine wichtige Schlacht, die die Welt veränderte. In dieser Schlacht spielte ein scheinbar einfaches, aber entscheidendes System eine große Rolle – der Leuchtfeuerturm. Erinnert Sie dieses alte Kommunikationssystem an das Beobachtermuster im modernen Softwaredesign? Lassen Sie uns heute durch Tausende von Jahren reisen und das Geheimnis des Beobachtermodus aus dem Rauch des Leuchtturmturms lüften.
Kriegswolken steigen am Chibi-Fluss auf,
Sobald der Krieg ausbricht, wird die ganze Welt davon erfahren.
Beobachten Sie gegebenenfalls Änderungen,
Besiege den Feind und beschütze das Land mit einem Zug.
Im Jahr 208 n. Chr. führte Cao Cao seine Armee nach Süden mit der Absicht, Jiangdong dem Erdboden gleichzumachen und die Welt auf einen Schlag zu vereinen. Angesichts der bedrohlichen Cao-Armee musste die Sun-Liu-Koalition sorgfältige Pläne schmieden, um die Starken mit den Schwachen zu besiegen.
„Wenn wir rechtzeitig auf Cao Juns Bewegungen reagieren wollen, müssen wir ein effizientes Frühwarnsystem aufbauen.“ Zhou Yu runzelte die Stirn und dachte nach.
Zhuge Liang schüttelte leicht seinen Federfächer und sagte selbstbewusst: „Meiner Meinung nach können Leuchttürme entlang des Flusses aufgestellt werden. Sobald der Feind entdeckt ist, werden die Leuchtfeuer angezündet. Wo der Rauch aufsteigt, müssen feindliche Truppen sein.“
Zhou Yus Augen leuchteten: „Wunderbar! Auf diese Weise kann unsere Armee jederzeit den Überblick über die Bewegungen des Feindes behalten und auf jede Gefahr vorbereitet sein.“
Auf diese Weise stehen Leuchttürme wie Wächter am Jangtsekiang. Jeder Leuchtfeuerturm ist mit einer engagierten Person ausgestattet, die Tag und Nacht im Einsatz ist. Sobald die Bewegung von Caos Armee entdeckt wird, wird das Leuchtfeuer sofort angezündet.
Eines Tages entdeckten die Wachen des Leuchtfeuerturms an vorderster Front plötzlich Spuren von Cao Juns Vorwärtstruppen.
„Schnell! Zünde das Leuchtfeuer an!“, rief der Wachmann.
Im Nu stieg dichter Rauch in den Himmel. Unmittelbar danach wurden nacheinander der zweite und dritte Leuchtturm angezündet und die Rauchzeichen schnell wie Dominosteine weitergegeben.
Im Militärzelt am Fluss besprach Zhou Yu mit Zhuge Liang militärische Angelegenheiten. Plötzlich eilte ein Soldat herbei:
„Melden Sie sich! Das Leuchtfeuer an der Front steigt, Caos Armee ist angekommen!“
Zhou Yu und Zhuge Liang sahen sich an, lächelten und sagten selbstbewusst: „Erteilen Sie den Befehl und handeln Sie gemäß dem Plan!“
Das Beobachtermuster definiert eine Eins-zu-Viele-Abhängigkeitsbeziehung, die es mehreren Beobachterobjekten ermöglicht, ein bestimmtes Subjektobjekt gleichzeitig zu überwachen. Dieses Themenobjekt benachrichtigt alle Beobachterobjekte, wenn sich sein Status ändert, sodass sie sich automatisch aktualisieren können.
Im Leuchtfeuersystem der Schlacht von Chibi können wir deutlich den Schatten des Beobachtermodus erkennen:
Lassen Sie uns die Struktur des Observer-Musters anhand eines Klassendiagramms verstehen:
Lassen Sie uns Java verwenden, um dieses Beacon-System zu implementieren:
import java.util.ArrayList;
import java.util.List;
// 观察者接口
interface MilitaryUnit {
void update(String message);
}
// 主题(烽火台)
class BeaconTower {
private List<MilitaryUnit> observers = new ArrayList<>();
private String message;
public void attach(MilitaryUnit observer) {
observers.add(observer);
}
public void detach(MilitaryUnit observer) {
observers.remove(observer);
}
public void notify(String message) {
this.message = message;
for (MilitaryUnit observer : observers) {
observer.update(message);
}
}
public void signalEnemyMovement(String message) {
System.out.println("烽火台: " + message);
notify(message);
}
}
// 具体观察者
class CommandCenter implements MilitaryUnit {
private String name;
public CommandCenter(String name) {
this.name = name;
}
@Override
public void update(String message) {
System.out.println(name + " 收到消息: " + message);
}
}
// 主类
public class ObserverPatternDemo {
public static void main(String[] args) {
BeaconTower beaconTower = new BeaconTower();
CommandCenter zhouYu = new CommandCenter("周瑜");
CommandCenter zhuGeLiang = new CommandCenter("诸葛亮");
beaconTower.attach(zhouYu);
beaconTower.attach(zhuGeLiang);
beaconTower.signalEnemyMovement("曹军前锋已到达赤壁!");
}
}
烽火台: 曹军前锋已到达赤壁!
周瑜 收到消息: 曹军前锋已到达赤壁!
诸葛亮 收到消息: 曹军前锋已到达赤壁!
Durch das Beacon-System der Schlacht von Chibi können wir mehrere entscheidende Vorteile des Beobachtermodus erkennen:
Das Beacon-System von Zhuge Liang hat nicht nur zum Sieg in der Schlacht von Chibi beigetragen, sondern uns auch die Essenz des Beobachtermodus offenbart. In der modernen Softwareentwicklung wird das Beobachtermuster häufig in vielen Bereichen verwendet, beispielsweise bei grafischen Benutzeroberflächen, Ereignisverarbeitungssystemen und Nachrichten-Push-Diensten.
Wie das Sprichwort sagt: „Tausende Meilen entfernt können wir gewinnen, indem wir strategisch vorgehen.“ Wenn wir den Beobachtermodus beherrschen, können wir ein reaktionsfähiges und gut strukturiertes Softwaresystem aufbauen, das auf dem sich ständig verändernden digitalen Schlachtfeld unbesiegbar bleibt.
Im nächsten Kapitel werden wir unsere Reise der Designmuster fortsetzen und mehr über die exquisite Kombination aus der Weisheit der Drei Königreiche und modernem Softwaredesign erkunden. Bleiben Sie dran!
Referenz Originaltext:https://offernow.cn
KI-Lernassistent:https://aistar.cool