簡單工廠模式的缺點,把矛盾集中在簡單工廠類中,使工廠類高耦合,而且進行修改和新增的時候也會比較麻煩。簡單工廠模式的優點,結構更加清晰,使**容易維護和分工明確,**如下:
namespace designmode
}public enum traffictype }}
下面是簡單工廠的意識圖:
工程模式加上配置檔案的好處,就是**管理起來更加的容易,在茫茫的**堆中需要修改的時候直接去找配置檔案就可以,雖然效能上有消耗是必然的,**如下:
using system.configuration;
using system;
namespace designmode
}public enum traffictype }}
這個反射機制不用選擇開關,因為反射允許我們在編譯與執行時,可以引導程式**的內部資訊,反射成本很高,效能消耗更大,但是**也更加容易維護,**如下:
using system.configuration;
using system;
namespace designmode}}
類建立單獨提供專屬工廠類,這個有什麼好處呢?就像筆者上面注釋的,這個類建立前拓展一些辦法,也就是開閉原則,對於拓展開放修改封閉,**如下:
namespace designmode
} public inte***ce onlyfactoryinte***ce
}
這個抽象工廠在專案修改或者新增的時候比較繁瑣,但是當有相同模組需要開發的時候,**就可以完全重複使用,並且工廠模式都符合開閉原則。**如下所示:
using system;
namespace designmode
class trafficfactory : ifactoryinte***ce
public trafficinte***ce createsecond()
public trafficinte***ce createthird()
public trafficinte***ce createfourth()}}
工廠模式的優缺點:
優點:1、乙個呼叫者想建立乙個物件,只要知道其名稱就可以了。 2、擴充套件性高,如果想增加乙個產品,只要擴充套件乙個工廠類就可以。 3、遮蔽產品的具體實現,呼叫者只關心產品的介面。
缺點:每次增加乙個產品時,都需要增加乙個具體類和物件實現工廠,使得系統中類的個數成倍增加,在一定程度上增加了系統的複雜度,同時也增加了系統具體類的依賴。這並不是什麼好事。
工廠模式適用場景(不僅限於以下場景):
1、日誌記錄器:記錄可能記錄到本地硬碟、系統事件、遠端伺服器等,使用者可以選擇記錄日誌到什麼地方。
2、資料庫訪問,當使用者不知道最後系統採用哪一類資料庫,以及資料庫可能有變化時。
3、設計乙個連線伺服器的框架,需要三個協議,"pop3"、"imap"、"http",可以把這三個作為產品類,共同實現乙個介面。
工廠模式 反射 配置檔案
inte ce fruit public void eat class orange implements fruit 構造工廠類 也就是說以後如果我們在新增其他的例項的時候只需要修改工廠類就行了 class factory if orange equals fruitname return f c...
簡單工廠模式 工廠方法模式
在實際應用中,我們可以考慮使用封裝 繼承 多型把程式的耦合度降低。1.簡單工廠模式 例子 寫乙個計算器模擬程式 思路 將業務進行封裝,並且進行松耦合,即不同的運算類之間互相不影響,可考慮通過繼承乙個類或者實現乙個介面 類operation,定義計算的統一介面 package smplefactory...
工廠模式(簡單工廠 工廠方法 抽象工廠)
二 工廠方法 三 抽象工廠 以下內容通過生產小公尺和華為手機 電腦 的例子實現 uml圖 phone介面 abstractproduct public inte ce phone miphone product1 public class miphone implements phone overr...