委託系列07 多播委託之觀察者模式

2022-09-20 13:36:11 字數 1952 閱讀 9982

有乙個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 多播委託,可以理解為乙個列表,只要其中元素函式簽名一致,就...