1. 程式人生 > >工廠模式理解

工廠模式理解

工廠模式分為三種:簡單工廠,工廠方法,抽象工廠。

簡單工廠:一個工廠負責一種產品。

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的能力,只是框架幫我們實現了例項化的過程。這是一種設計原則。類裡面的屬性。減低程式碼的耦合度。就是我這個類需要呼叫其他類的方法,而我們不得不去例項化他,所以引入了依賴注入的設計原則。