Condivisione della tecnologia

La Torre Faro della Battaglia di Chibi - Modalità Osservatore

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

"Quando la guerra continua per tre mesi, una lettera da casa vale diecimila monete d'oro; se il modello di progettazione è giusto, migliaia di truppe agiranno all'unisono."

Nella magnifica storia dei Tre Regni, la Battaglia di Chibi fu senza dubbio una battaglia importante che cambiò il mondo. In questa battaglia, un sistema apparentemente semplice ma cruciale ha giocato un ruolo enorme: la torre del faro. Questo antico sistema di comunicazione ti ricorda il modello dell’osservatore nella moderna progettazione del software? Oggi viaggiamo attraverso migliaia di anni e sveliamo il mistero della modalità osservatore dal fumo della torre faro.

Nuvole di guerra si alzano lungo il fiume Chibi,
Una volta scoppiata la guerra, il mondo intero lo saprà.
Osservare le modifiche in modo appropriato,
Sconfiggi il nemico e proteggi il paese con una mossa.

La guerra infuria

Nel 208 d.C., Cao Cao guidò il suo esercito verso sud, con l'intenzione di radere al suolo Jiangdong e unificare il mondo in un colpo solo. Di fronte al minaccioso esercito Cao, la coalizione Sun-Liu dovette elaborare piani accurati per sconfiggere i forti con i deboli.

"Se vogliamo rispondere tempestivamente ai movimenti di Cao Jun, dobbiamo costruire un efficiente sistema di allarme rapido" Zhou Yu si accigliò e pensò.

Zhuge Liang scosse leggermente il suo ventaglio di piume e disse con sicurezza: "Secondo me, si possono installare torri di faro lungo il fiume. Una volta scoperto il nemico, i fari verranno accesi. Dove si alza il fumo, devono esserci truppe nemiche".

Gli occhi di Zhou Yu si illuminarono: "Meraviglioso! In questo modo, il nostro esercito può tenere traccia dei movimenti del nemico in qualsiasi momento ed essere preparato a qualsiasi pericolo".

In questo modo, le torri faro si ergono come sentinelle lungo il fiume Yangtze. Ogni torre faro è dotata di una persona dedicata in servizio giorno e notte. Una volta scoperto il movimento dell'esercito di Cao, il fuoco del faro verrà acceso immediatamente.

Un giorno, le guardie della torre faro in prima linea scoprirono improvvisamente tracce delle truppe avanzate di Cao Jun.

"Presto! Accendi il faro!" gridò la guardia.

In un attimo si levò nel cielo un fumo denso. Subito dopo furono accese una dopo l'altra la seconda e la terza torre faro e i segnali di fumo furono passati velocemente come tessere del domino.

Nella tenda militare vicino al fiume, Zhou Yu stava discutendo di affari militari con Zhuge Liang. All'improvviso un soldato si precipitò:

"Rapporto! Il fuoco del faro è in prima linea, l'esercito di Cao è arrivato!"

Zhou Yu e Zhuge Liang si guardarono e sorrisero e dissero con sicurezza: "Passa l'ordine e agisci secondo il piano!"

Analisi del modello dell'osservatore

Il modello osservatore definisce una relazione di dipendenza uno-a-molti, consentendo a più oggetti osservatore di monitorare un determinato oggetto soggetto contemporaneamente. Questo oggetto argomento notifica a tutti gli oggetti osservatore quando il suo stato cambia, consentendo loro di aggiornarsi automaticamente.

Nel sistema di segnalazione della Battaglia di Chibi, possiamo vedere chiaramente l'ombra della modalità osservatore:

  • La torre faro è il soggetto osservato (Soggetto)
  • Ogni unità militare (come il quartier generale di Zhou Yu e Zhuge Liang) è un osservatore.
  • L'accensione del faro è un cambiamento di stato
  • La trasmissione dei segnali di fumo è il meccanismo di notifica

Cerchiamo di comprendere la struttura del pattern Observer utilizzando un diagramma di classi:

immagine-20240707223121510

Codice

Usiamo Java per implementare questo sistema beacon:

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

risultato dell'operazione

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

La magia del modello dell'osservatore

Attraverso il sistema di faro della Battaglia di Chibi, possiamo vedere diversi vantaggi chiave della modalità osservatore:

  1. disaccoppiamento : Beacon Tower (tema) non ha bisogno di sapere quali unità militari (osservatori) lo stanno monitorando e le unità militari non hanno bisogno di conoscere l'implementazione interna di Beacon Tower. Questo design ad accoppiamento libero migliora la flessibilità del sistema.
  2. Scalabilità: Se devi aggiungere una nuova unità di risposta (come il dipartimento logistico), devi solo creare un nuovo osservatore e registrarlo su Beacon Tower senza modificare il codice esistente.
  3. Comunicazioni trasmesse: Un messaggio può essere trasmesso rapidamente a più destinatari, proprio come il fuoco del faro, l'intera linea di difesa può apprendere rapidamente la situazione del nemico.
  4. Progettazione reattiva: Il modello dell'osservatore è molto adatto per implementare la progettazione del sistema reattivo. Quando lo stato cambia, tutte le parti rilevanti possono essere aggiornate in tempo.

Conclusione

Il sistema di fari di Zhuge Liang non solo ha contribuito a vincere la battaglia di Chibi, ma ci ha anche rivelato l'essenza della modalità osservatore. Nello sviluppo del software moderno, il modello dell'osservatore è ampiamente utilizzato in molti campi come le interfacce utente grafiche, i sistemi di elaborazione degli eventi e i servizi push di messaggi.

Come dice il proverbio, "A migliaia di chilometri di distanza, possiamo vincere con la strategia". Se padroneggiamo la modalità osservatore, possiamo costruire un sistema software reattivo e ben strutturato che rimarrà invincibile nel campo di battaglia digitale in continua evoluzione.

Nel prossimo capitolo continueremo il nostro viaggio attraverso i design pattern ed esploreremo in modo più approfondito la squisita combinazione tra la saggezza dei Tre Regni e la moderna progettazione del software. Rimani sintonizzato!

Testo originale di riferimento:https://offernow.cn
Assistente all'apprendimento AI:Italiano: https://aistar.cool