minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
"Quando a guerra continuar por três meses, uma carta de casa valerá dez mil ouro; se o padrão de design estiver correto, milhares de soldados agirão como um só."
Na magnífica história dos Três Reinos, a Batalha de Chibi foi sem dúvida uma batalha importante que mudou o mundo. Nesta batalha, um sistema aparentemente simples, mas crucial, desempenhou um papel importante - a torre do farol. Este antigo sistema de comunicação lembra o padrão do observador no design de software moderno? Hoje, vamos viajar através de milhares de anos e desvendar o mistério do modo observador a partir da fumaça da torre do farol.
Nuvens de guerra sobem junto ao rio Chibi,
Quando a guerra estourar, o mundo inteiro saberá.
Observe as alterações conforme apropriado,
Derrote o inimigo e proteja o país com um movimento.
Em 208 DC, Cao Cao liderou seu exército para o sul, com a intenção de arrasar Jiangdong e unificar o mundo de uma só vez. Enfrentando o ameaçador exército Cao, a coligação Sun-Liu teve de fazer planos cuidadosos para derrotar os fortes com os fracos.
“Se quisermos responder aos movimentos de Cao Jun em tempo hábil, devemos construir um sistema de alerta precoce eficiente.” Zhou Yu franziu a testa e pensou.
Zhuge Liang balançou levemente seu leque de penas e disse com segurança: “Na minha opinião, torres de farol podem ser instaladas ao longo do rio. Assim que o inimigo for descoberto, os faróis serão acesos.
Os olhos de Zhou Yu brilharam: “Maravilhoso! Desta forma, nosso exército pode acompanhar os movimentos do inimigo a qualquer momento e estar preparado para qualquer perigo.
Desta forma, as torres de sinalização funcionam como sentinelas ao longo do rio Yangtze. Cada torre de farol é equipada com uma pessoa dedicada de plantão dia e noite. Assim que o movimento do exército de Cao for descoberto, o fogo do farol será aceso imediatamente.
Um dia, os guardas da torre de farol na linha de frente descobriram de repente vestígios das tropas avançadas de Cao Jun.
"Rápido! Acenda o farol!", gritou o guarda.
Num instante, uma fumaça espessa subiu ao céu. Imediatamente depois, a segunda e a terceira torres de farol foram acesas uma após a outra, e os sinais de fumaça foram transmitidos rapidamente como dominós.
Na tenda militar à beira do rio, Zhou Yu discutia assuntos militares com Zhuge Liang. De repente, um soldado veio correndo:
"Relatório! O farol está na linha de frente, o exército de Cao chegou!"
Zhou Yu e Zhuge Liang se entreolharam, sorriram e disseram com segurança: “Passe a ordem e aja de acordo com o plano!”
O padrão observador define um relacionamento de dependência um-para-muitos, permitindo que vários objetos observadores monitorem um determinado objeto ao mesmo tempo. Este objeto de tópico notifica todos os objetos observadores quando seu estado muda, permitindo que eles se atualizem automaticamente.
No sistema de faróis da Batalha de Chibi, podemos ver claramente a sombra do modo observador:
Vamos entender a estrutura do padrão Observer usando um diagrama de classes:
Vamos usar Java para implementar este sistema de 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("曹军前锋已到达赤壁!");
}
}
烽火台: 曹军前锋已到达赤壁!
周瑜 收到消息: 曹军前锋已到达赤壁!
诸葛亮 收到消息: 曹军前锋已到达赤壁!
Através do sistema de beacon da Batalha de Chibi, podemos ver várias vantagens importantes do modo observador:
O sistema de farol de Zhuge Liang não só ajudou a vencer a Batalha de Chibi, mas também nos revelou a essência do modo observador. No desenvolvimento de software moderno, o padrão observador é amplamente utilizado em muitos campos, como interfaces gráficas de usuário, sistemas de processamento de eventos e serviços de envio de mensagens.
Como diz o ditado: “A milhares de quilômetros de distância, podemos vencer traçando estratégias”. Se dominarmos o modo observador, poderemos construir um sistema de software ágil e bem estruturado que permanecerá invencível no campo de batalha digital em constante mudança.
No próximo capítulo, continuaremos nossa jornada de padrões de design e exploraremos mais a combinação requintada da sabedoria dos Três Reinos e do design de software moderno. Fique atento!
Texto original de referência:https://offernow.cn
Assistente de aprendizagem de IA:https://aistar.cool