//主題
interface Subject
{
void Notify();
string msg { get; set; }
UpdateHandler Update { get; set; }
}
delegate void UpdateHandler();
class ChildSubject : Subject
{
public UpdateHandler Update { get; set; }
public string msg { get; set; }
public void Notify()
{
Update();
}
}
//觀察者
abstract class Observer
{
public string name;
public Subject subject;
public Observer(string _name, Subject _subject)
{
name = _name;
subject = _subject;
}
}
class Site: Observer
{
public Site(string _name, Subject _subject) : base(_name, _subject)
{
}
public void RefreshSite()
{
Console.WriteLine("{0},{1}需要同步更新", subject.msg,name);
}
}
class App: Observer
{
public App(string _name, Subject _subject) : base(_name, _subject)
{
}
//方法名稱不一樣,所以抽象沒意義
public void RefreshApp()
{
Console.WriteLine("{0},{1}需要同步更新", subject.msg, name);
}
}
//前端
static void Main(string[] args)
{
Subject subject = new ChildSubject();
Site site = new Site("電腦網站", subject);
App app = new App("手機APP", subject);
subject.msg = "數據庫被更新了";
subject.Update += site.RefreshSite;
subject.Update += app.RefreshApp;
subject.Notify();
Console.ReadLine();
}
總結:觀察者模式適用于某個對象發生變化后會引起其他對象發生連鎖反應的情況下,(兩個類有依賴關系的情況下)。
成都創新互聯是一家集網站建設,富順企業網站建設,富順品牌網站建設,網站定制,富順網站建設報價,網絡營銷,網絡優化,富順網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
本文標題:設計模式-觀察者模式
網站URL:http://vcdvsql.cn/article38/pcccsp.html
成都網站建設公司_創新互聯,為您提供響應式網站、搜索引擎優化、品牌網站建設、網站內鏈、軟件開發、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯