τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
«Όταν ο πόλεμος συνεχίζεται για τρεις μήνες, ένα γράμμα από το σπίτι αξίζει δέκα χιλιάδες χρυσά· εάν το σχέδιο σχεδιασμού είναι σωστό, χιλιάδες στρατιώτες θα λειτουργήσουν ως ένα».
Στη μαγευτική ιστορία των Τριών Βασιλείων, η Μάχη του Chibi ήταν αναμφίβολα μια σημαντική μάχη που άλλαξε τον κόσμο. Σε αυτή τη μάχη, ένα φαινομενικά απλό αλλά κρίσιμο σύστημα έπαιξε τεράστιο ρόλο - ο πύργος του φάρου. Σας θυμίζει αυτό το αρχαίο σύστημα επικοινωνίας το μοτίβο του παρατηρητή στο σύγχρονο σχεδιασμό λογισμικού; Σήμερα, ας ταξιδέψουμε μέσα σε χιλιάδες χρόνια και ας αποκαλύψουμε το μυστήριο της λειτουργίας παρατηρητή από τον καπνό του πύργου του φάρου.
Πολεμικά σύννεφα υψώνονται δίπλα στον ποταμό Chibi,
Μόλις ξεσπάσει ο πόλεμος, όλος ο κόσμος θα το μάθει.
Παρατηρήστε τις αλλαγές κατά περίπτωση,
Νικήστε τον εχθρό και προστατέψτε τη χώρα με μια κίνηση.
Το 208 μ.Χ., ο Cao Cao οδήγησε τον στρατό του προς τα νότια, σκοπεύοντας να ισοπεδώσει τον Jiangdong και να ενοποιήσει τον κόσμο με μια πτώση. Αντιμετωπίζοντας τον απειλητικό στρατό του Cao, ο συνασπισμός Sun-Liu έπρεπε να κάνει προσεκτικά σχέδια για να νικήσει τους ισχυρούς με τους αδύναμους.
«Αν θέλουμε να ανταποκριθούμε στις κινήσεις του Κάο Τζουν έγκαιρα, πρέπει να οικοδομήσουμε ένα αποτελεσματικό σύστημα έγκαιρης προειδοποίησης».
Ο Zhuge Liang τίναξε ελαφρά τον ανεμιστήρα του και είπε με σιγουριά: "Κατά τη γνώμη μου, μπορούν να στηθούν πύργοι φάρων κατά μήκος του ποταμού. Μόλις ανακαλυφθεί ο εχθρός, οι φάροι θα ανάψουν. Όπου ανεβαίνει ο καπνός, πρέπει να υπάρχουν εχθρικά στρατεύματα."
Τα μάτια του Zhou Yu φωτίστηκαν: "Υπέροχο! Με αυτόν τον τρόπο, ο στρατός μας μπορεί να παρακολουθεί τις κινήσεις του εχθρού ανά πάσα στιγμή και να είναι προετοιμασμένος για κάθε κίνδυνο."
Με αυτόν τον τρόπο, οι πύργοι φάρων στέκονται σαν φρουροί κατά μήκος του ποταμού Yangtze. Κάθε πύργος φάρων είναι εξοπλισμένος με ένα αφοσιωμένο άτομο σε υπηρεσία μέρα και νύχτα Μόλις ανακαλυφθεί η κίνηση του στρατού του Κάο, η φωτιά του φάρου θα ανάψει αμέσως.
Μια μέρα, οι φρουροί του πύργου του φάρου στο προσκήνιο ανακάλυψαν ξαφνικά ίχνη των μπροστινών στρατευμάτων του Κάο Τζουν.
«Γρήγορα! Άναψε το φάρο!» φώναξε ο φρουρός.
Σε μια στιγμή, πυκνός καπνός ανέβηκε στον ουρανό. Αμέσως μετά, ο δεύτερος και ο τρίτος πύργος φάρων άναψαν ο ένας μετά τον άλλο και τα σήματα καπνού περνούσαν γρήγορα σαν ντόμινο.
Στη στρατιωτική σκηνή δίπλα στο ποτάμι, ο Zhou Yu συζητούσε στρατιωτικές υποθέσεις με τον Zhuge Liang. Ξαφνικά, ένας στρατιώτης έσπευσε:
"Αναφορά! Η φωτιά του φάρου είναι στην πρώτη γραμμή, ο στρατός του Κάο έφτασε!"
Ο Zhou Yu και ο Zhuge Liang κοιτάχτηκαν και χαμογέλασαν και είπαν με σιγουριά: "Περάστε την εντολή και ενεργήστε σύμφωνα με το σχέδιο!"
Το μοτίβο παρατηρητή ορίζει μια σχέση εξάρτησης ένα προς πολλά, επιτρέποντας σε πολλαπλά αντικείμενα παρατηρητή να παρακολουθούν ένα συγκεκριμένο αντικείμενο υποκειμένου ταυτόχρονα. Αυτό το αντικείμενο θέματος ειδοποιεί όλα τα αντικείμενα παρατηρητή όταν αλλάζει η κατάστασή του, επιτρέποντάς τους να ενημερώνονται αυτόματα.
Στο σύστημα beacon της Μάχης του Chibi, μπορούμε να δούμε καθαρά τη σκιά της λειτουργίας παρατηρητή:
Ας κατανοήσουμε τη δομή του μοτίβου Observer χρησιμοποιώντας ένα διάγραμμα κλάσης:
Ας χρησιμοποιήσουμε την Java για να εφαρμόσουμε αυτό το σύστημα 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("曹军前锋已到达赤壁!");
}
}
烽火台: 曹军前锋已到达赤壁!
周瑜 收到消息: 曹军前锋已到达赤壁!
诸葛亮 收到消息: 曹军前锋已到达赤壁!
Μέσω του συστήματος beacon της Μάχης του Chibi, μπορούμε να δούμε πολλά βασικά πλεονεκτήματα της λειτουργίας παρατηρητή:
Το σύστημα φάρων του Zhuge Liang όχι μόνο βοήθησε να κερδίσουμε τη μάχη του Chibi, αλλά μας αποκάλυψε επίσης την ουσία της λειτουργίας παρατηρητή. Στη σύγχρονη ανάπτυξη λογισμικού, το μοτίβο παρατηρητή χρησιμοποιείται ευρέως σε πολλούς τομείς, όπως γραφικές διεπαφές χρήστη, συστήματα επεξεργασίας συμβάντων και υπηρεσίες προώθησης μηνυμάτων.
Όπως λέει και η παροιμία, "Χιλιάδες μίλια μακριά, μπορούμε να κερδίσουμε με τη χάραξη στρατηγικής, εάν κατακτήσουμε τη λειτουργία του παρατηρητή, μπορούμε να δημιουργήσουμε ένα σύστημα λογισμικού που να ανταποκρίνεται καλά και να είναι καλά δομημένο, το οποίο θα παραμείνει ανίκητο στο συνεχώς μεταβαλλόμενο ψηφιακό πεδίο μάχης".
Στο επόμενο κεφάλαιο, θα συνεχίσουμε το ταξίδι μας στα σχεδιαστικά μοτίβα και θα εξερευνήσουμε περισσότερο τον εξαιρετικό συνδυασμό της σοφίας των Τριών Βασιλείων και του σύγχρονου σχεδιασμού λογισμικού. Μείνετε συντονισμένοι!
Αναφορά πρωτότυπου κειμένου:https://offernow.cn
Βοηθός εκμάθησης AI:https://aistar.cool