Compartir tecnología

La Torre Baliza de la Batalla de Chibi - Modo Observador

2024-07-12

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

"Cuando la guerra dura tres meses, una carta enviada desde casa vale diez mil monedas de oro; si el patrón de diseño es correcto, miles de tropas actuarán como una sola".

En la magnífica historia de los Tres Reinos, la Batalla de Chibi fue sin duda una batalla importante que cambió el mundo. En esta batalla, un sistema aparentemente simple pero crucial jugó un papel muy importante: la torre de baliza. ¿Este antiguo sistema de comunicación le recuerda el patrón de observador en el diseño de software moderno? Viajemos hoy a través de miles de años y desvelemos el misterio del modo observador a partir del humo de la torre del faro.

Nubes de guerra se elevan junto al río Chibi,
Una vez que estalle la guerra, el mundo entero lo sabrá.
Observar los cambios según corresponda,
Derrota al enemigo y protege el país con un solo movimiento.

La guerra continúa

En 208 d.C., Cao Cao dirigió su ejército hacia el sur, con la intención de aplastar Jiangdong y unificar el mundo de un solo golpe. Frente al amenazante ejército de Cao, la coalición Sun-Liu tuvo que hacer planes cuidadosos para derrotar a los fuertes junto con los débiles.

"Si queremos responder a los movimientos de Cao Jun de manera oportuna, debemos construir un sistema de alerta temprana eficiente". Zhou Yu frunció el ceño y pensó.

Zhuge Liang agitó ligeramente su abanico de plumas y dijo con confianza: "En mi opinión, se pueden instalar torres de balizas a lo largo del río. Una vez que se descubre al enemigo, las balizas se encenderán. Donde se eleva el humo, debe haber tropas enemigas".

Los ojos de Zhou Yu se iluminaron: "¡Maravilloso! De esta manera, nuestro ejército puede realizar un seguimiento de los movimientos del enemigo en cualquier momento y estar preparado para cualquier peligro".

De esta manera, las torres de baliza se erigen como centinelas a lo largo del río Yangtze. Cada torre de baliza está equipada con una persona dedicada de servicio día y noche. Una vez que se descubre el movimiento del ejército de Cao, el fuego de la baliza se encenderá de inmediato.

Un día, los guardias de la torre de baliza en la vanguardia descubrieron de repente rastros de las tropas de avanzada de Cao Jun.

"¡Rápido! ¡Enciende la baliza!", gritó el guardia.

En un instante, un humo espeso se elevó hacia el cielo. Inmediatamente después, la segunda y tercera torres de baliza se encendieron una tras otra y las señales de humo pasaron rápidamente como fichas de dominó.

En la tienda militar junto al río, Zhou Yu estaba discutiendo asuntos militares con Zhuge Liang. De repente, un soldado se acercó apresuradamente:

"¡Informe! ¡El fuego de baliza está en la línea del frente, el ejército de Cao ha llegado!"

Zhou Yu y Zhuge Liang se miraron, sonrieron y dijeron con confianza: "¡Pasen la orden y actúen de acuerdo con el plan!".

Análisis de patrones de observador.

El patrón de observador define una relación de dependencia de uno a muchos, lo que permite que varios objetos observadores monitoreen un determinado objeto sujeto al mismo tiempo. Este objeto de tema notifica a todos los objetos observadores cuando cambia su estado, permitiéndoles actualizarse automáticamente.

En el sistema de balizas de la Batalla de Chibi, podemos ver claramente la sombra del modo observador:

  • La torre de baliza es el sujeto observado (Asunto)
  • Cada unidad militar (como el cuartel general de Zhou Yu y Zhuge Liang) es un observador.
  • El encendido de la baliza es un cambio de estado.
  • La transmisión de señales de humo es el mecanismo de notificación.

Entendamos la estructura del patrón Observer usando un diagrama de clases:

imagen-20240707223121510

Código

Usemos Java para implementar este sistema de baliza:

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

resultado de la operación

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

La magia del patrón de observador.

A través del sistema de balizas de La Batalla de Chibi, podemos ver varias ventajas clave del modo observador:

  1. desacoplamiento : Beacon Tower (tema) no necesita saber qué unidades militares (observadores) lo están monitoreando, y las unidades militares no necesitan conocer la implementación interna de Beacon Tower. Este diseño ligeramente acoplado mejora la flexibilidad del sistema.
  2. Escalabilidad: Si necesita agregar una nueva unidad de respuesta (como el departamento de logística), solo necesita crear un nuevo observador y registrarlo en Beacon Tower sin modificar el código existente.
  3. Comunicaciones de radiodifusión: Un mensaje se puede transmitir rápidamente a múltiples destinatarios, al igual que el fuego de baliza, toda la línea de defensa puede conocer rápidamente la situación del enemigo.
  4. Diseño de respuesta: El patrón de observador es muy adecuado para implementar un diseño de sistema receptivo. Cuando cambia el estado, todas las partes relevantes se pueden actualizar a tiempo.

Conclusión

El sistema de balizas de Zhuge Liang no solo ayudó a ganar la Batalla de Chibi, sino que también nos reveló la esencia del modo observador. En el desarrollo de software moderno, el patrón de observador se usa ampliamente en muchos campos, como interfaces gráficas de usuario, sistemas de procesamiento de eventos y servicios de envío de mensajes.

Como dice el refrán: "A miles de kilómetros de distancia, podemos ganar mediante la elaboración de estrategias". Si dominamos el modo observador, podemos construir un sistema de software receptivo y bien estructurado que seguirá siendo invencible en el campo de batalla digital en constante cambio.

En el próximo capítulo, continuaremos nuestro viaje por los patrones de diseño y exploraremos más de la exquisita combinación de la sabiduría de los Tres Reinos y el diseño de software moderno. ¡Manténganse al tanto!

Texto original de referencia:https://offernow.cn
Asistente de aprendizaje de IA:https://aistar.cool