Posted on 2010-04-02 14:27
java小爬蟲 閱讀(1842)
評論(0) 編輯 收藏
簡單工廠模式
就是,對對象實例化的過程和需要實例化的對象進行細節上的封裝。
優點:工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關類。對于客戶端來說,去除了與具體產品的依賴。
缺點:當需要增加產生一個新對象實例的方法時,需要修改工廠類,這樣,工廠類就違背了“開-閉原則”。
工廠方法模式
定義一個用于創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到了子類。
工廠方法模式實現,客戶端進行工廠的實例化,產生哪一個工廠實例的邏輯判斷依然存在。工廠方法把簡單工廠內部邏輯判斷轉移到了客戶
端。工廠方法模式就是利用了“依賴倒轉原則”解決了簡單工廠模式違背“開-閉原則”的問題。
抽象工廠模式
提供一個創建一系列相關或者相或依賴對象的接口,而不需要指定它們具體的類。
通常在運行時刻產生一個ConcreteFactory實例,這個具體工廠再創建具有特定實現的產品實例。為創建不同的產品對象,客戶端應使用不同的具體工廠。
優點:易于改變產品系列;具體的創建過程與客戶端分離,客戶端操作抽象接口產生實例。
缺點:增加一種產品(對象),需要改變的地方很多。
用簡單工廠來改進抽象工廠
用反射+抽象工廠進行改進
所有用簡單工廠的地方,都可以考慮用反射來解除if,case判斷語句帶來的耦合。
用反射+配置文件進行改進