Teknologian jakaminen

Chibin taistelun majakkatorni - tarkkailijatila

2024-07-12

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

"Kun sota jatkuu kolme kuukautta, kirje kotoa on kymmenentuhannen kullan arvoinen; jos suunnittelumalli on oikea, tuhannet joukot toimivat yhtenä."

Kolmen kuningaskunnan upeassa historiassa Chibin taistelu oli epäilemättä tärkeä taistelu, joka muutti maailman. Tässä taistelussa näennäisen yksinkertaisella mutta ratkaisevalla järjestelmällä oli valtava rooli - majakkatornilla. Muistuttaako tämä ikivanha viestintäjärjestelmä sinua nykyaikaisen ohjelmistosuunnittelun tarkkailijakuviosta? Tänään matkustakaamme tuhansia vuosia ja paljastakaamme tarkkailijatilan mysteeri majakkatornin savusta.

Sotapilvet nousevat Chibi-joen varrelle,
Kun sota syttyy, koko maailma tietää.
Tarkkaile muutoksia tarpeen mukaan,
Voita vihollinen ja suojele maata yhdellä liikkeellä.

Sota jatkuu

Vuonna 208 jKr Cao Cao johti armeijaansa etelään aikoen tasoittaa Jiangdongin ja yhdistää maailman yhdellä iskulla. Uhkaavaa Caon armeijaa vastaan ​​Sun-Liu-koalition täytyi tehdä huolellisia suunnitelmia voittaakseen vahvat heikoilla.

"Jos haluamme vastata Cao Junin liikkeisiin ajoissa, meidän on rakennettava tehokas ennakkovaroitusjärjestelmä."

Zhuge Liang pudisti höyhenviuhkaansa kevyesti ja sanoi luottavaisesti: "Mielestäni joen varrelle voidaan pystyttää majakkatorneja. Kun vihollinen on löydetty, majakat syttyvät. Siellä missä savu nousee, siellä täytyy olla vihollisjoukkoja."

Zhou Yun silmät loistivat: "Ihanaa! Tällä tavalla armeijamme voi seurata vihollisen liikkeitä milloin tahansa ja olla varautunut kaikkiin vaaroihin."

Tällä tavalla majakkatornit seisovat vartiotorneina Jangtse-joen varrella. Jokaisessa majakkatornissa on päivä- ja yöpäivystys, kun Caon armeijan liike havaitaan, majakka sytytetään välittömästi.

Eräänä päivänä majakkatornin vartijat eturintamassa löysivät yhtäkkiä jälkiä Cao Junin etujoukoista.

"Nopeasti! Sytytä majakka!" huusi vartija.

Hetkessä taivaalle nousi paksu savu. Välittömästi tämän jälkeen toinen ja kolmas majakkatorni sytytettiin peräkkäin ja savumerkit ohitettiin nopeasti kuin domino.

Armeijateltassa joen varrella Zhou Yu keskusteli sotilasasioista Zhuge Liangin kanssa. Yhtäkkiä sotilas kiiruhti luokse:

"Raportoi! Majakkatuli on etulinjassa, Caon armeija on saapunut!"

Zhou Yu ja Zhuge Liang katsoivat toisiaan ja hymyilivät ja sanoivat luottavaisesti: "Lähetä käsky ja toimi suunnitelman mukaan!"

Tarkkailijakuvion analyysi

Havainnointikuvio määrittää yksi-moneen riippuvuussuhteen, jolloin useat tarkkailijaobjektit voivat tarkkailla tiettyä kohdeobjektia samanaikaisesti. Tämä aiheobjekti ilmoittaa kaikille tarkkailijaobjekteille, kun sen tila muuttuu, jolloin ne voivat päivittää itsensä automaattisesti.

Chibin taistelun majakkajärjestelmässä näemme selvästi tarkkailijatilan varjon:

  • Majakkatorni on tarkkailtava kohde (Aihe)
  • Jokainen sotilasyksikkö (kuten Zhou Yun ja Zhuge Liangin päämaja) on tarkkailija.
  • Majakan syttyminen on tilan muutos
  • Savusignaalien välittäminen on ilmoitusmekanismi

Ymmärrämme Observer-mallin rakennetta luokkakaavion avulla:

kuva-20240707223121510

Koodi

Käytämme Javaa tämän majakkajärjestelmän toteuttamiseen:

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

operaation tulos

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

Tarkkailijamallin taika

Chibin taistelun majakkajärjestelmän kautta voimme nähdä useita havainnointitilan keskeisiä etuja:

  1. irrottaminen : Beacon Towerin (teeman) ei tarvitse tietää mitkä sotilasyksiköt (tarkkailijat) valvovat sitä, eikä sotilasyksiköiden tarvitse tietää Beacon Towerin sisäistä toteutusta. Tämä löyhästi kytketty rakenne parantaa järjestelmän joustavuutta.
  2. Skaalautuvuus: Jos sinun on lisättävä uusi vastausyksikkö (kuten logistiikkaosasto), sinun tarvitsee vain luoda uusi tarkkailija ja rekisteröidä se Beacon Toweriin muuttamatta olemassa olevaa koodia.
  3. Lähetysviestintä: Viesti voidaan välittää nopeasti useille vastaanottajille, aivan kuten majakkatuli, koko puolustuslinja voi nopeasti oppia vihollisen tilanteen.
  4. Responsiivinen muotoilu: Havaintomalli soveltuu erittäin hyvin reagoivan järjestelmäsuunnittelun toteuttamiseen Kun tila muuttuu, kaikki asiaankuuluvat osat voidaan päivittää ajoissa.

Johtopäätös

Zhuge Liangin majakkajärjestelmä ei vain auttanut voittamaan Chibin taistelua, vaan paljasti meille myös tarkkailijatilan olemuksen. Nykyaikaisessa ohjelmistokehityksessä tarkkailijakuviota käytetään laajasti monilla aloilla, kuten graafisissa käyttöliittymissä, tapahtumien käsittelyjärjestelmissä ja viestien push-palveluissa.

Kuten sanonta kuuluu: "Tuhansien kilometrien päässä voimme voittaa strategioiden avulla."

Seuraavassa luvussa jatkamme suunnittelumallien matkaamme ja tutkimme lisää Kolmen kuningaskunnan viisauden ja modernin ohjelmistosuunnittelun hienoa yhdistelmää. Pysy kanavalla!

Viite alkuperäinen teksti:https://offernow.cn
AI-oppimisavustaja:https://aistar.cool