要求:實現多個書店對應多個客戶的到書通知,且圖書領域與顧客的興趣領域一致才通知顧客;
分析:首先,分析物件和屬性
書店:名稱
顧客:興趣領域 名稱
分析函式
興趣領域函式
書店:事件函式(新書到店),名稱函式(get set)
顧客:名稱興趣領域函式(get set)
通知函式(輸出語句);
通知函式與事件函式(觸發函式)合併
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace _2
; delegate void bookhandler(bookstore sender,domain dom,string book);
class bookstore
}public bookstore(string name)
public void newbook(domain dom, string book)
}class customer
void store_onnewbook(bookstore store, domain dom, string book)
您好:店新到新書《》", _name, store.name, book);
}public void register(bookstore store)
public void unregister(bookstore store)
}class program
;//第一次見到這種物件初始化方法;***************************************
foreach (customer c in cs)
//foreach遍歷容器內的每個成員
store1.newbook(domain.computer, "c#程式設計");
store2.newbook(domain.literature, "唐詩三百首");
cs[0].unregister(store2);
store2.newbook(domain.computer, "資料結構");}}
}
JavaScript事件發布 訂閱
1 發布 訂閱模式也是諸多設計模式當中的一種 2 這種方式可以在es5下相當優雅地處理非同步操作 3 什麼是發布 訂閱呢?我們舉個栗子 假設fn1,fn2,fn3都可以視作乙個事件的發布者,執行它,就會發布乙個事件。這個時候,我們可以通過乙個事件的訂閱者去批量訂閱並處理這些事件,包括它們的先後順序。...
訂閱發布模式 事件
實現訂閱發布模式的基本思路 訂閱者把自己想訂閱的事件註冊到排程中心,所以第一步應該先實現訂閱者到排程中心的方法。訂閱方法 排程中心統一排程訂閱者註冊到排程中心的處理 發布方法 訂閱者取消訂閱事件 取消訂閱方法 直接附上 var pubsub one function evt,fn,ctx off f...
事件發布訂閱 哨兵函式
1.通過事件發布訂閱來實現 這是 node 核心模組中的乙個類,通過它可以建立事件發射器的例項,裡面有兩個核心方法,乙個叫 on emit,on 表示註冊監聽,emit 表示發射事件 let eventemitter require events let fs require fs let eve ...