国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

觀察者模式:貓叫鼠跑人醒(C#)

2019-11-14 13:54:41
字體:
來源:轉載
供稿:網友

  本著菜鳥先飛的想法,決定把平時遇到的知識點記錄下來,一來是加深理解,二來是方便以后自己查閱。當您看到我這篇文章的時候,覺得代碼有哪里不足的地方,請多指教,謝謝。(命名不規范是為了加深自己的理解,多多見諒。)

  觀察者模式:即當目標對象狀態或者是行為發生改變時,正在觀察該目標對象的觀察者們做出一系列自動反應。

  

1.接口實現public interface Oberver{void 坐出反應();}public interface BObserver{void 反應(Oberver o);}public class 老鼠 : Oberver{public 老鼠(BObserver b){b.反應(this);}public void 坐出反應(){Console.WriteLine("老鼠跑了...");}}public class 人 : Oberver{public 人(BObserver b){b.反應(this);}public void 坐出反應(){Console.WriteLine("人醒了...");}}public class 貓 : BObserver{List<Oberver> list;public 貓(){list = new List<Oberver>();}public void 反應(Oberver o){list.Add(o);}public void 貓叫(){foreach (Oberver o in list){o.坐出反應();}}2.委托和事件public delegate void 處理();public abstract class 被觀察{public event 處理 處理事件;public void Test(){if (處理事件 != null) this.處理事件();} }public class 貓 : 被觀察{public void 貓叫(){Console.WriteLine("貓叫了!");this.Test();}}public abstract class 觀察者2{public 觀察者2(被觀察 b){b.處理事件 += new 處理(觀察做出反應);}public abstract void 觀察做出反應();}public class 老鼠 : 觀察者2{public 老鼠(被觀察 b) : base(b) { }public override void 觀察做出反應(){Console.WriteLine("老鼠跑了......");}}public class 人 : 觀察者2{public 人(被觀察 b) : base(b) { }public override void 觀察做出反應(){Console.WriteLine("人醒了......");}}

 

 第一次發帖感覺好亂,多多包含。—菜鳥先飛


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彰化市| 嫩江县| 灌南县| 天气| 郧西县| 宁晋县| 莱芜市| 新巴尔虎左旗| 永川市| 桦甸市| 长乐市| 海原县| 福鼎市| 舒城县| 襄垣县| 阳曲县| 临夏市| 南木林县| 侯马市| 石河子市| 遂宁市| 河间市| 朔州市| 靖西县| 墨玉县| 集贤县| 东安县| 府谷县| 长阳| 东山县| 壶关县| 沧源| 任丘市| 城市| 娄底市| 铁岭县| 南郑县| 黔东| 马公市| 连江县| 胶州市|