[Design-Pattern] Observer Pattern
Observer Pattern - 觀察者模式 目的 : 處理一個物件對應多個物件之間的連動關係。類似 Mqtt sub/pub 當一個觀察者物件(Subject)改變時,其他的觀察者物件(Observer)都會收到通知,並執行對應的動作。 善用抽象類別 Subject public abstract class Subject { protected List<Adventurer> adventurers = new List<Adventurer>(); public void add(Adventurer adventurer) { Console.WriteLine($"{adventurer.Name} subscribe the topic!"); adventurers.Add(adventurer); } public void remove(Adventurer adventurer) { adventurers.Remove(adventurer); } public abstract void sendQuestion(string msg); } Association public class Association : Subject { public override void sendQuestion(string msg) { foreach (var adventurer in adventurers) { adventurer.getQuestions(msg); } } } Adventurer public abstract class Adventurer { public string Name; public ...