當某個狀態改變時就通知所有訂閱者
目的是要讓互動的物件做鬆綁 兩個物件可以作互動
但彼此之間並不太清楚彼此細節
下面的範例是 當有個人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();
}
沒有留言:
張貼留言