工廠模式(factory)構(gòu)建模式
工廠模式
定義:提供創(chuàng)建對(duì)象的接口
為何使用:如果在一個(gè)項(xiàng)目中你需要new很多的實(shí)體,恰好這個(gè)實(shí)體new的過(guò)程很是復(fù)雜,而且有一天你的PM說(shuō)在這個(gè)new的工程中加一個(gè)級(jí)別的過(guò)濾吧。
你會(huì)突然發(fā)現(xiàn)你的工作量怎么那么大呢!如果當(dāng)時(shí)用到了工廠你就會(huì)發(fā)現(xiàn)原來(lái)加這個(gè)需求是這么的簡(jiǎn)單。而且在new的過(guò)程出現(xiàn)錯(cuò)誤的幾率將
大大的降低了。你的代碼也將會(huì)非常整潔。
實(shí)例:(直接上代碼,發(fā)現(xiàn)弄圖片是如此的麻煩?。?nbsp;
//這只是一個(gè)小例子,會(huì)根據(jù)給出的顏色來(lái)給出具體的實(shí)例
public class WorkFactory {
public static Work getWork(String color){
return color.equals("black")?new BlackWork():new WhiteWork();
}
}
抽象工廠
定義:如果工廠是生產(chǎn)實(shí)例的,那抽象工廠就是一個(gè)整個(gè)工廠的架構(gòu)沒(méi)有具體的實(shí)現(xiàn)
為何使用:比如人家想用你的工廠,但是你又不想讓人家看到你工廠里面具體的工作,并且你還要告訴他你工廠可能干什么。這時(shí)候你就可以給他看你的抽象的工廠
而不是真正再生產(chǎn)的工廠了。而且利于擴(kuò)展,比如又讓你建一個(gè)工廠和上一個(gè)在實(shí)現(xiàn)上有區(qū)別但是還是那幾個(gè)方法。這樣你利用抽象工廠很快就可以搭建
這另一個(gè)工廠了。
實(shí)例:
public abstract class AbstractFactory {
public abstract Work getWork() throws Exception;
public abstract Study getStudy() throws Exception;
}
posted on 2012-03-01 11:45 海峰 閱讀(134) 評(píng)論(0) 編輯 收藏 所屬分類: 設(shè)計(jì)模式