定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。
public
inte***ce
pigpublic
inte***ce
pigfactory
public
class
redpig
}public
class
redpigfactory
implements
pigfactory
}
public
class
greenpig
}public
class
greenpigfactory
implements
pigfactory
}
public
class
bluepig
}public
class
bluepigfactory
implements
pigfactory
}
呼叫:
pigfactory factory = new bluepigfactory();
factory.getpig().run();
這裡的核心是什麼?根據不同的需要返回了不同的物件,然後呢?執行返回物件的方法!
在clojure裡就是根據不同的需要直接執行不同的函式!clojure有預設支援!multimethod!
(defmulti
run (fn
[t] t))
(defmethod
run:redpig
[t](println
"redpig run"))
(defmethod
run:greenpig
[t](println
"greenpig run"))
(defmethod
run:bluepig
[t](println
"bluepig run"))
(run
:redpig)
語言與模式 03抽象工廠模式
提供乙個建立一系列相關或相互依賴物件的介面,而無需指定它們具體的類。表現在 層面就是乙個工廠可以返回多個不同的例項!比如 pig不僅分顏色,還分國家,比如荷蘭pig,紐西蘭pig。public class redpigfactory implements pigfactory public pig ...
02螞蟻 設計模式 2 工廠模式
實現了建立者和呼叫者分離,工廠模式分為簡單工廠 工廠方法 抽象工廠模式。好處 可以降低程式的耦合性。為後期的維護提供了很大的便利。方便統一管理。簡單工廠模式package mayi02.may02.factory public inte ce car package mayi02.may02.fac...
工廠模式與抽象工廠模式
原始出處 作者資訊和本宣告。否則將追究法律責任。工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 ...