設計模式學習筆記 簡單工廠模式

2022-06-28 07:00:09 字數 1484 閱讀 2273

# 背景  

簡單工廠模式是很多程式設計師學習的第乙個設計模式,因為其不但原理簡單而且易於上手,在日常工作的**中也常有體現。今天分享乙個基於實現「加」、「減」、「乘」、「除」計算器的需求基於簡單工廠模式來實現。

# 錯誤示範

在學習簡單工廠模式之前,遇到這種需求我是這樣實現的:

public

static double calculator(double num1, double num2, string symbol) throws

exception

switch

(symbol)

result = num1 /num2;

break

;

default

:{} }

return

result;

}

簡單來說是船艦乙個方法,然後通過switch case 乙個乙個的去判斷,然後對比中的進行處理,後續如果有其他判斷的話,就繼續在下面在增加case判斷。那麼這段**實現了需求了,是實現了,但是這段**是優秀的嗎?不是。為什麼呢?例如現在客戶需求增加乙個平方演算法,我們在case中增加這個演算法,卻需要加減乘除的運算都得來參與編譯,在這個**的迭代過程中,如果不小心對原有**進行了誤操作,會造成很糟糕的結果,尤其是這個誤操作有可能還不會報錯……所以我們應該把加減乘除等運算進行分離,修改其中乙個不會影響另外的幾個,增加平方演算法也不影響其他**。

宣告父類

@data

public

abstract

class

operation

建立多個計算類用於繼承父類並重寫getresult方法,這裡我分別建立了加減乘除四個類來繼承operation類,並重寫getresult()方法

class operationadd extends

operation

}class operationsub extends

operation

}class operationmul extends

operation

}class operationdiv extends

operation

}

此時,我們只需要簡單的寫乙個工程方法就可以實現業務要求了。這裡只是例項**,很多細節判斷沒有加,如果是在生成環境中,首先入參肯定要校驗是否為null,如果為null會報npe,上面除法運算類中,應該對分母進行判斷,是否為0等等……

class

operationfactory

}return

operation;

}}

測試main方法

public

static

void

main(string args)

返回結果:

13.2

設計模式 簡單工廠模式(學習筆記)

簡單工廠事實上不是乙個設計模式,比較像一種程式設計習慣!首先看一下 從 中理解這個程式設計習慣。舉個做披薩的樣例 pizza類 public inte ce pizza詳細的披薩cheesepizza public class cheesepizza implements pizza overrid...

設計模式 學習筆記 簡單工廠模式

從接觸程式設計到現在已經很久了,從最早的面向過程到物件導向,後來演算法的學習,但是一直沒有接觸設計模式。前幾周,我申請的 大話設計模式 採購下來了,剛好藉著這個讀書的機會,把自己的學習筆記記錄下來,希望以後自己寫專案的時候可以應用到這些模式思想。1 運算的基類,所有的運算都必須繼承自這個類 基類,所...

設計模式學習筆記之簡單工廠模式

所謂簡單工廠模式,即提供建立物件的介面,而具體建立什麼物件,由客戶端決定。比如,我們有ibird這樣乙個抽象類,有chicken和duck這兩個類實現ibird。那麼,如果我們想靈活的建立chicken或ibird,那麼就需要用到簡單工廠模式。factory根據接收到的字串,決定返回的物件。客戶端用...