簡(jiǎn)單工廠

在簡(jiǎn)單工廠模式中,可以根據(jù)參數(shù)的不同返回不同類的實(shí)例冈在。簡(jiǎn)單工廠模式專門定義一個(gè)類來(lái)負(fù)責(zé)創(chuàng)建其他類的實(shí)例械荷,被創(chuàng)建的實(shí)例通常都具有共同的父類。

包括三個(gè)角色:
-Factory:工廠角色
-Product:抽象產(chǎn)品角色
-ConcreteProduct:具體產(chǎn)品角色
UML類圖:


SimpleFactory.jpg

抽象產(chǎn)品角色

public abstract class Product  {
    //所有產(chǎn)品類的公共業(yè)務(wù)方法
    public void methodSame() {
        //公共方法的實(shí)現(xiàn)
    }
    //聲明抽象業(yè)務(wù)方法
    public abstract void methodDiff();
}

具體產(chǎn)品

//具體產(chǎn)品A
public class ConcreteProductA extends Product {
    // 產(chǎn)品A實(shí)現(xiàn)方法
    @Override
    public void methodDiff() {

    }
}
//具體產(chǎn)品B
public class ConcreteProductB extends Product {
    //產(chǎn)品B實(shí)現(xiàn)方法
    @Override
    public void methodDiff() {

    }
}

工廠角色

//工廠角色
public class Factory {

    public static Product getProduct(String productType){
        Product product = null;
        if (productType.equalsIgnoreCase("A")) {
            product = new ConcreteProductA();
            //初始化設(shè)置product
        }
        else if (productType.equalsIgnoreCase("B")) {
            product = new ConcreteProductB();
            //初始化設(shè)置product
        }
        return product;
    }
}

客戶端

//客戶端簡(jiǎn)單工廠使用
public class Client {
    public static void main(String[] args) {
        Product product = Factory.getProduct("A");
        product.methodSame();
        product.methodDiff();
    }
}

簡(jiǎn)單工廠模式的優(yōu)點(diǎn)

1.實(shí)現(xiàn)了對(duì)責(zé)任的分割漓摩,提供了專門的工廠類用于創(chuàng)建對(duì)象。
2.客戶端無(wú)須知道所創(chuàng)建的具體產(chǎn)品類的類名入客,只需要知道具體產(chǎn)品類所對(duì)應(yīng)的參數(shù)即可管毙。
3.可以在不修改任何客戶端代碼的情況下更換和增加新的具體產(chǎn)品類。

簡(jiǎn)單工廠模式的缺點(diǎn)

1.工廠類集中了所有產(chǎn)品創(chuàng)建邏輯桌硫,一旦不能正常工作夭咬,整個(gè)系統(tǒng)都要受到影響。
2.增加系統(tǒng)中類的個(gè)數(shù)铆隘。增加了系統(tǒng)的復(fù)雜度和理解難度卓舵。
3.系統(tǒng)擴(kuò)展困難,一旦添加新產(chǎn)品就不得不修改工廠邏輯膀钠。
4.由于使用了靜態(tài)工廠方法掏湾,造成工廠角色無(wú)法形成基于繼承的等級(jí)結(jié)構(gòu)。

適應(yīng)環(huán)境

1.客戶端只知道傳入工廠類的參數(shù)肿嘲,對(duì)于如何創(chuàng)建對(duì)象不關(guān)心融击。
2.工廠類負(fù)責(zé)創(chuàng)建的對(duì)象比較少。

參考:
https://design-patterns.readthedocs.io/zh_CN/latest/creational_patterns/simple_factory.html#id23

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末雳窟,一起剝皮案震驚了整個(gè)濱河市尊浪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖拇涤,帶你破解...
    沈念sama閱讀 212,185評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捣作,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡鹅士,警方通過(guò)查閱死者的電腦和手機(jī)券躁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)掉盅,“玉大人嘱朽,你說(shuō)我怎么就攤上這事≌樱” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,684評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵稀轨,是天一觀的道長(zhǎng)扼脐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)奋刽,這世上最難降的妖魔是什么瓦侮? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,564評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮佣谐,結(jié)果婚禮上肚吏,老公的妹妹穿的比我還像新娘。我一直安慰自己狭魂,他們只是感情好罚攀,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,681評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雌澄,像睡著了一般斋泄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镐牺,一...
    開(kāi)封第一講書(shū)人閱讀 49,874評(píng)論 1 290
  • 那天炫掐,我揣著相機(jī)與錄音,去河邊找鬼睬涧。 笑死募胃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的畦浓。 我是一名探鬼主播痹束,決...
    沈念sama閱讀 39,025評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宅粥!你這毒婦竟也來(lái)了参袱?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,761評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎抹蚀,沒(méi)想到半個(gè)月后剿牺,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,217評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡环壤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,545評(píng)論 2 327
  • 正文 我和宋清朗相戀三年晒来,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郑现。...
    茶點(diǎn)故事閱讀 38,694評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡湃崩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出接箫,到底是詐尸還是另有隱情攒读,我是刑警寧澤,帶...
    沈念sama閱讀 34,351評(píng)論 4 332
  • 正文 年R本政府宣布辛友,位于F島的核電站薄扁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏废累。R本人自食惡果不足惜邓梅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,988評(píng)論 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望邑滨。 院中可真熱鬧日缨,春花似錦、人聲如沸掖看。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,778評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哎壳。三九已至墨礁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耳峦,已是汗流浹背恩静。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,007評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蹲坷,地道東北人驶乾。 一個(gè)月前我還...
    沈念sama閱讀 46,427評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像循签,于是被迫代替她去往敵國(guó)和親级乐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,580評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容