|
在《從 if else 到 switch case 再到抽象》這篇文章里面說到,解決 if else 和 switch case 分支過多的一個(gè)方法,就是做一個(gè)專用的 dispatcher ,讓它來負(fù)責(zé)進(jìn)行篩選與轉(zhuǎn)發(fā)。至于篩選條件的描述,模式匹配是一種很常見也很好用的方式。在 JavaScript 里面,用 JSON 來描述模式又是相當(dāng)方便的事情,所以我們來做一個(gè) JSON 模式匹配工具吧。
用例設(shè)計(jì)
作為一個(gè) dispatcher ,我們只需要兩個(gè)方法: notify
和 capture
。一個(gè)最簡(jiǎn)單的用例是這樣的:
1 Dispatcher.capture({
2 "status": 200,
3 "command": "message"
4 }, function(json) { /* display message */ });
5
6 Dispatcher.notify({
7 “status": 200,
8 "command": "message",
9 "content": {
10 "from": "user1",
11 "to": "user2",
12 "text": "hello"
13 }
14 });
it知識(shí)庫(kù):用 JavaScript 對(duì) JSON 進(jìn)行模式匹配 (Part 1 - 設(shè)計(jì)),轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。