Technologieaustausch

Der Leuchtfeuerturm der Schlacht von Chibi – Beobachtermodus

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.

Der Krieg tobt weiter

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

Beobachtermusteranalyse

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:

  • Der Leuchtfeuerturm ist das beobachtete Subjekt (Subjekt)
  • Jede Militäreinheit (wie das Hauptquartier von Zhou Yu und Zhuge Liang) ist ein Beobachter.
  • Das Zünden der Bake ist eine Zustandsänderung
  • Die Übertragung von Rauchsignalen ist der Benachrichtigungsmechanismus

Lassen Sie uns die Struktur des Observer-Musters anhand eines Klassendiagramms verstehen:

Bild-20240707223121510

Code

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("曹军前锋已到达赤壁!");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62

Operationsergebnis

烽火台: 曹军前锋已到达赤壁!
周瑜 收到消息: 曹军前锋已到达赤壁!
诸葛亮 收到消息: 曹军前锋已到达赤壁!
  • 1
  • 2
  • 3

Die Magie des Beobachtermusters

Durch das Beacon-System der Schlacht von Chibi können wir mehrere entscheidende Vorteile des Beobachtermodus erkennen:

  1. Entkopplung : Der Beacon Tower (Thema) muss nicht wissen, welche Militäreinheiten (Beobachter) ihn überwachen, und Militäreinheiten müssen die interne Implementierung des Beacon Tower nicht kennen. Dieses lose gekoppelte Design verbessert die Systemflexibilität.
  2. Skalierbarkeit: Wenn Sie eine neue Reaktionseinheit hinzufügen müssen (z. B. die Logistikabteilung), müssen Sie nur einen neuen Beobachter erstellen und ihn beim Beacon Tower registrieren, ohne den vorhandenen Code zu ändern.
  3. Rundfunkkommunikation: Eine Nachricht kann schnell an mehrere Empfänger übermittelt werden, genau wie beim Befeuern von Leuchtfeuern kann die gesamte Verteidigungslinie schnell die Situation des Feindes erfahren.
  4. Sich anpassendes Design: Das Beobachtermuster eignet sich sehr gut für die Implementierung eines reaktionsfähigen Systemdesigns. Wenn sich der Status ändert, können alle relevanten Teile rechtzeitig aktualisiert werden.

Abschluss

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