定義:提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。提供創(chuàng)建對象的接。
工廠模式是我們最常用的模式,是用來創(chuàng)建對象的,它就相當于創(chuàng)建對象的new。
例如我們有一個類Example,我們要創(chuàng)建Example的對象:
Example example=new Example();
或
Example example=new Example(參數(shù));
如果創(chuàng)建Example時做的事情不是如賦值這樣簡單的事,可能是很長一段代碼,如果也寫入構(gòu)造函數(shù)中,那明顯的就違背了面向?qū)ο蟮脑瓌t.
我們需要將創(chuàng)建實例的責任與使用實例的責任分開, 使得
Example example=new Example(參數(shù));
就是簡單的責任:使用Example這個實例;而創(chuàng)建Example的任務就交給了Factory工廠模式.
按照傳統(tǒng)方法,我們?nèi)绻枰^承Example類,生成MyExample,就需要定義Example為Interface,然后,不斷繼承這個Interface,生成許多子類,造成以后代碼維護是如此的困難。
如果,我們開始就采用了工廠模式,也許就沒有這么多的煩惱了。
我們生成一個Factory,它專門負責生成Example的實例。
public class Factory {
public static Example getIntance() {
......
if(flag == 1)
return new MyExample();
if(flag == 2)
return new YourExample();
}
}
然后,那么在你的程序中,如果要實例化MyExample時.就使用
Example example=Factory.getIntance();//還有其它標志,不具體寫了。
具體使用:
工廠模式有以下三種:
1. 簡單工廠(Simple Factory)
2. 工廠方法(Factory Method);
3. 抽象工廠(Abstract Factory)。
工廠模式是我們最常用的模式,是用來創(chuàng)建對象的,它就相當于創(chuàng)建對象的new。
例如我們有一個類Example,我們要創(chuàng)建Example的對象:
Example example=new Example();
或
Example example=new Example(參數(shù));
如果創(chuàng)建Example時做的事情不是如賦值這樣簡單的事,可能是很長一段代碼,如果也寫入構(gòu)造函數(shù)中,那明顯的就違背了面向?qū)ο蟮脑瓌t.
我們需要將創(chuàng)建實例的責任與使用實例的責任分開, 使得
Example example=new Example(參數(shù));
就是簡單的責任:使用Example這個實例;而創(chuàng)建Example的任務就交給了Factory工廠模式.
按照傳統(tǒng)方法,我們?nèi)绻枰^承Example類,生成MyExample,就需要定義Example為Interface,然后,不斷繼承這個Interface,生成許多子類,造成以后代碼維護是如此的困難。
如果,我們開始就采用了工廠模式,也許就沒有這么多的煩惱了。
我們生成一個Factory,它專門負責生成Example的實例。
public class Factory {
public static Example getIntance() {
......
if(flag == 1)
return new MyExample();
if(flag == 2)
return new YourExample();
}
}
然后,那么在你的程序中,如果要實例化MyExample時.就使用
Example example=Factory.getIntance();//還有其它標志,不具體寫了。
具體使用:
工廠模式有以下三種:
1. 簡單工廠(Simple Factory)
2. 工廠方法(Factory Method);
3. 抽象工廠(Abstract Factory)。

