當某個狀態改變時就通知所有訂閱者
目的是要讓互動的物件做鬆綁 兩個物件可以作互動
但彼此之間並不太清楚彼此細節
下面的範例是 當有個人Post一篇文章
所有他的定閱者都會收到通知 然後都可以做他們相對應的動作
public interface Notifier { void Notify(); } public class Paul : Notifier { public void Notify() { Console.WriteLine("Paul 立刻去看文章"); } } public class Ted : Notifier { public void Notify() { Console.WriteLine("Ted 把文章加入書籤"); } } public class Tina : Notifier { public void Notify() { Console.WriteLine("Tina 不理會"); } } public class ArticlePoster { private List<Notifier> PersonList = new List<Notifier>(); public void Add(Notifier person) { PersonList.Add(person); } public void PostArticle() { foreach (Notifier person in PersonList) { person.Notify(); } } } static void Main(string[] args) { ArticlePoster poster = new ArticlePoster(); poster.Add(new Paul()); poster.Add(new Tina()); poster.Add(new Ted()); poster.PostArticle(); Console.ReadKey(); }
沒有留言:
張貼留言