設計模式之 簡單工廠模式

2021-06-19 23:19:46 字數 1115 閱讀 6266

簡單工廠模式,這是《大話設計模式》開篇講解的內容,以乙個面試題引出,步步逼近,講的很好,詳細見該書;它從最初的**講起,一直到最後應用到了設計模式-簡單工廠模式;其中用到了類的三大特性:封裝、繼承、多型;在這裡我不再一一講解,只是把完整的**貼上來供參考(稍微做了修改):

1、抽象類-operation,該類只有乙個抽象方法,負責計算各種運算,其實現由實現類完成;

public abstract class operation

2、接下來是各種計算類,他們繼承了上面的抽象類,並根據運算實現了裡面的抽象方法;

public class add extends operation 

}public class sub extends operation

}public class multip extends operation

}public class division extends operation

else return number1 / number2;

}}

3、接下來就用到了簡單工廠模式,objectfactory類負責建立物件,也就是根據提供的操作符決定建立哪個類物件;

public class objectfactory 

return operation;

}}

其實使用這樣的方法來設計該面試題有很多的好處:

首先是復用性,不管是什麼操作只要提供了操作符,在程式的入口呼叫工廠類中的方法就可以得到相應的操作物件,進而呼叫相應的方法計算得出結果

其次是容易擴充套件,如果要增加某乙個運算,只需要新增乙個operation類的實現類並根據需要重寫裡面的抽象方法,然後再工廠類中增加乙個分支即可,這其實也和面向介面程式設計差不多;同時避免了去修改原來的功能性**;真可謂是一石多鳥啊!!

但是這樣的簡單工廠模式有沒有問題呢?答案是有的,在軟體開發過程中有乙個非常重要的原則需要遵守:開-閉原則(open-close-rules,簡稱為ocr);簡單的說就是對擴充套件開放,而不修改關閉。什麼意思呢,也就是說對於開發好的軟體對於擴充套件是非常方便的,而且盡量不去更改已經寫好的功能型**,避免了重新編譯減少了工作量,這也就是對修改關閉;

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

設計模式 工廠模式之簡單工廠

工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...

設計模式 工廠模式之簡單工廠

我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...