工廠模式理解
工廠模式分為三種:簡單工廠,工廠方法,抽象工廠。
簡單工廠:一個工廠負責一種產品。
eg:一個手機工廠生產一種手機。
工廠方法:設計一個工廠介面。實現多個工廠。
eg:一個手機工廠生產2種型號的手機。
設計:public interface Factory{
public void create();
}
class FactoryOne{
public void create(){
生產手機1;}
}
class FactoryTow{
public void create(){
生產手機2;}
}
抽象工廠:就是將多個工廠方法中的工廠介面集合在一起
eg:
public interface AbstractFactory {
public ProductA factoryA();
public ProductB factoryB();
}
這樣工廠A就是可以負責生產手機。工廠B就是負責生產電視等。
實際應用:spring工廠模式:
spring中的bean就是採用工廠方法的。在spring框架中,spring將所有的bean封裝在一個工廠中。在使用過程中,客戶傳入一個name屬性,spring就從工廠中取出具體的bean。具體體現就是:我們載入配置獲取工廠,傳入name值。spring工廠就去呼叫具體的生產工廠,創造出一個bean給客戶端。
簡單工廠跟依賴注入區別:
雖然都是通過具體類直接呼叫其他類。
但是,工廠方法是:通過get的獲取具體的bean,就是說工廠本身就具備例項化bean的能力,是一種設計模式,類之上的設計。就是工廠需要創造出這個bean
依賴注入:通過set方法將具體的類注入到需要它的類中。呼叫類本身不具備例項化bean的能力,只是框架幫我們實現了例項化的過程。這是一種設計原則。類裡面的屬性。減低程式碼的耦合度。就是我這個類需要呼叫其他類的方法,而我們不得不去例項化他,所以引入了依賴注入的設計原則。