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
整合學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。一般情況下,整合學習中的多個學習器都是同質的 弱學習器 少數服從多數,假定有5個分類器,有3個分類為正樣本,2個分類為負樣本,按照hardvoting的思想就是投票,你的正樣...
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...
設計模式 命令設計模式
一句話總結 命令設計模式的實質是將命令定義,命令的執行分離開,從而提公升了系統的解藕性 結構 命令的抽象command 命令的具體實現concretecommand 命令處理者抽象ireceiver 命令處理者的具體實現concretereceiver 命令的呼叫者invoker 客戶端client...