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

