什麼時候用工廠模式

2021-09-25 17:05:23 字數 375 閱讀 6535

有個疑問:工廠模式最終不也是new個物件出來麼?呼叫者直接用new好了,何必還要用工廠模式多此一舉呢?想了半天,查了些資料,弄出了點眉目。

有時候,構造物件確實只要簡單的new就可以了,但另一些時候,構造物件的過程就比較複雜,比如要有很多條件判斷啊,引數選擇啊之類的,這時候把它們交給呼叫者去做就有些不太負責和不合理。好比我(呼叫者)需要一架紙飛機,行,你給我張紙,我自己折,問題不大,這就好比是簡單的new個物件出來。可是如果我要架真飛機,要我造不累死我?當然得交給飛機工廠去做啦。這就是工廠模式做的事。

jdk中工廠模式的例子之一是dateformat類,它有幾個過載的工廠方法gettimeinstance() ,是構造dateformat子類例項的。檢視了下原始碼,確實過程比較複雜,所以用了工廠模式。

工廠模式及什麼時候用工廠模式

factory method是一種建立性模式,它定義了乙個建立物件的介面,但是卻讓子類來決定具體例項化哪乙個類.當乙個類無法預料要建立哪種類的物件或是乙個類需要 由子類來指定建立的物件時我們就需要用到factory method 模式了.簡單說來,factory method可以根據不同的條件產生不...

什麼時候用exists 什麼時候用in

in not in exists not exists 使用exists,oracle會首先檢查主查詢,然後執行子查詢直到它找到第乙個匹配項,這就節省了時間。oracle在執行in子查詢時,首先執行 子查詢,並將獲得的結果列表存放在乙個加了索引的臨時表中。在執行子查詢之前,系統先將主查詢掛起 待子查...

什麼時候用GET?什麼時候用POST?

get和post兩種方法都是將資料送到伺服器,但你該用哪一種呢?http標準包含這兩種方法是為了達到不同的目的。post用於建立資源,資源的內容會被編入http請示的內容中。例如,處理訂貨表單 在資料庫中加入新資料行等。當請求無 時 如進行搜尋 便可使用get方法 當請求有 時 如新增資料行 則用p...