voting设计模式
????????????????????? Voting 模式
?
?
??????????????????????????????????????????????????????
1.語境:這個設計模式是從多人投票的模型中抽象出來的,其中參與者voter是一個個投票者,每個投票者都維護一個狀態COUNT,VOTE()操作可以改變COUNT的狀態,COUNTER是計票器,每個投票者可以通過ATTACH()和DETACH()操作與COUNTER聯系起來,同時COUNTER通知每個登記的投票者去投票,然后通過COUNTWINNER()操作來對得票進行統計,其它用戶通過GETCOUNT()操作得到最終投票結果。其中所有的COUNT成員變量都在同一個取值范圍。與觀察者模式很相像,不同在于觀察者模式強調維護兩者的狀態一致性,而VOTING模式強調并行處理并對處理結果進行統計等處理。
2.意圖:同一件事情交由多個不同的處理者(相同的接口,不同的實現)處理,然后對結果進行匯總處理。
3.效果::
?????? 1.COUNTER和VOTER的抽象耦合
??? 每個COUNTER所知道的僅僅是它有一系列VOTER,每個都符合抽象的VOTER簡單的接口。COUNTER不知道任何一個VOTER屬于哪個具體的類,這樣兩者之間的耦合是最小的。
?? 2.支持廣播通信
?
注:這個模式是我2年前想到的,后來看的書多了才知道這其實是“主控-從屬”模式的一個變體?
總結
以上是生活随笔為你收集整理的voting设计模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hadoop3.0.0 源码阅读之一:I
- 下一篇: 为人箴言