問題:
1、某一物件a依賴於介面b, 當使用spring為物件a注入介面b的實現類時, 介面b的實現類可能不確定,對於這種情況我們怎麼處理?
2、某一物件a依賴於介面b, 但是介面b的實現類, 依賴於第三方庫, 第三方庫需要初始化、處理相關的類, 這種情況我們怎麼處理?
針對上面的情況, 我們可以自己建立乙個工廠, 讓工廠建立所需要的實現類, 然後注入到物件a中
方法一:靜態工廠方法
//靜態工廠類
public class staticfactory
}//xml檔案配置
paramvalue
//需要注入bean3的地方
方法二:例項工廠方法
public class nostaticfactory
}
方法三:繼承spring提供的factorybean, 實現getobject方法
public class bean3factorybean implements factorybean
@override
public class getobjecttype()
@override
public boolean issingleton()
}factory.getbean("bean3")是獲取bean3介面的實現類,
factory.getbean("&bean3")獲取bean3factorybean 工廠例項
簡單工廠方法,工廠方法,抽象工廠方法
以大話設計模式計算器為例 簡單工廠方法是由具體執行功能類,工廠類,客戶端構成,工廠類有case語句,負責建立不同的類,客戶端呼叫工廠類裡面的工廠方法,工廠類的工廠方法根據客戶端傳進去的引數new相應的類的物件返回給客戶端,客戶端得到返回的物件用該物件初始化該物件的成員變數最後呼叫該物件的方法執行計算...
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
靜態工廠方法和例項工廠方法
在學習spring bean的例項化方式的時候遇到的乙個問題,spring bean例項化有3種方法 1 構造器生成 2 靜態工廠方法 3 例項工廠方法 那麼問題來了,什麼是靜態工廠方法,什麼是例項工廠方法?靜態工廠方法 顧名思義就是直接可以通過靜態方法來例項化乙個物件 如 public class...