我是clojure的新手,我試圖理解不同情況下可用的不同設計選擇。在這種特殊情況下,我想將緊密耦合的功能組合起來,並使得將這些功能作爲一個集合傳遞成爲可能。函數圖vs協議實現
何時使用函數映射將緊密相關的功能和何時使用協議(+實現)分組?
有什麼優點和缺點?
要麼更習慣?
作爲參考,這裏有兩個例子是我的意思。與Fn鍵地圖:
(defn do-this [x] ...)
(defn do-that [] ...)
(def some-do-context { :do-this (fn [x] (do-this x)
:do-that (fn [] (do-that) }
,並在第二種情況下,
(defprotocol SomeDoContext
(do-this[this x] "does this")
(do-that[this] "does that")
(deftype ParticularDoContext []
SomeDoContext
(do-this[this x] (do-this x))
(do-that[this] (do-that))
那麼應該何時使用功能圖呢? – 4ZM
我個人,不會使用功能的地圖,只使用地圖的數據 – Ankur