語言與模式 03抽象工廠模式

2021-06-29 01:23:37 字數 1092 閱讀 4738

提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。

表現在**層面就是乙個工廠可以返回多個不同的例項!

比如: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 抽象工廠模式

一 定義 抽象工廠模式是利用乙個超級工廠來建立其他工廠。該設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。在抽象工廠模式中,介面是負責建立乙個生成別的物件的工廠,而不是生產指定的類。每個生成物件的工廠都按照工廠模式提供物件。二 詳細介紹 解決問題 主要解決介面選擇的問題。使用場景 系統的產品...