有乙個cat類,其中有乙個miao(貓叫)的方法。每次貓叫後,其他動物就會執行響應的動作。
**:
public class cat
miao", this.gettype().name);}}
**:
public class cat
miao", this.gettype().name);
new dog().wang(); //狗叫了
new mouse().run();//老鼠跑了
new baby().cry(); // 小孩哭了
new mother().wispher();
new father().roar();
new neighbor().awake();
new stealer().hide();}}
以上這種方式存在以下問題:
public action miaoaction = null;
/// /// 這個方法僅僅只是miao一聲
/// 引發的動作---可以放到多播委託中去
///
public void miaodelegate()
miaodelegate", this.gettype().name);
//方式一:
//if (miaoaction != null)
////方式二:
miaoaction?.invoke();//?. 如果不為null ,就執行後面的動作
iobject介面:
public inte***ce iobject
dog類實現了iobject介面:
public class dog : iobject
public void doaction()
public void wang()
wang", this.gettype().name);}}
其他的動物類都實現了iobject介面,就不在此贅述。
public listobserverlist = new list();
public void miaoobsever()
miaoobsever", this.gettype().name);
if (observerlist.count > 0)}}
console.writeline("************************this is obeserver****************************");
console.writeline("************************this is obeserver****************************");
委託系列06 多播委託
多播委託 public class custommulticastdelegation private void donothing int i private void donothingint int i private void donothingintandstring int i,stri...
隨筆記錄之多播委託實現觀察者模式
拿貓和老鼠的案例來說,如下 1 定義貓類 class cat public action catdelegate 定義委託 模擬貓狀態發生改變 public void catcoming 每當觀察者做修改,都在被觀察者裡有變化,增大了 的耦合性 摒棄 public void catcomingtwo...
C 筆記11多播委託 事件 設計模式(觀察者模式)
事件初步理解多播委託為委託列表static action int all static action int addthenprint i static action int print i console.writeline i main 多播委託,可以理解為乙個列表,只要其中元素函式簽名一致,就...