提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。
表現在**層面就是乙個工廠可以返回多個不同的例項!
比如:pig不僅分顏色,還分國家,比如荷蘭pig,紐西蘭pig。
public
class
redpigfactory
implements
pigfactory
public pig getnewzealandpig()
}
而在clojure中就是選擇函式的條件多了!
(defmulti
run (fn
[t] t))
(defmethod
run[:redpig
:netherlands]
[t](println
"netherlands redpig run"))
(defmethod
run[:greenpig
:netherlands]
[t](println
"netherlands greenpig run"))
(defmethod
run[:bluepig
:netherlands]
[t](println
"netherlands bluepig run"))
(defmethod
run[:redpig
:newzealand]
[t](println
"newzealand redpig run"))
(defmethod
run[:greenpig
:newzealand]
[t](println
"newzealand greenpig run"))
(defmethod
run[:bluepig
:newzealand]
[t](println
"newzealand bluepig run"))
(run
[:bluepig
:netherlands])
設計模式03 抽象工廠
抽象工廠使用抽象類 或者介面 來定義某一類工廠的行為。uml圖如下 適用orangefoodfactory來建立橙色的食物 public class orangefoodfactory implements abstractfactory override public vegetables get...
設計模式學習03 抽象工廠模式
1 動機與定義 工廠模式中,乙個工廠僅僅能提供乙個或一類產品,當產品種類較多,形成產品系列 比方我們要建立跨平台的button,選單,文字框等等一系列gui控制項 單純使用工廠模式會產生大量工廠,並且後期維護也不方便,我們能夠從產品中找到規律,假設產品等級相對固定,以後僅僅會新增產品族,那麼我們就能...
設計模式初級 03 抽象工廠模式
一 定義 抽象工廠模式是利用乙個超級工廠來建立其他工廠。該設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個生成別的物件的工廠,而不是生產指定的類。每個生成物件的工廠都按照工廠模式提供物件。二 詳細介紹 解決問題 主要解決介面選擇的問題。使用場景 系統的產品...