工廠模式-女?huà)z補(bǔ)天(創(chuàng)建型)

女?huà)z補(bǔ)天的故事大家都聽(tīng)說(shuō)過(guò)吧祸轮,今不說(shuō)這個(gè)姑隅,說(shuō)女?huà)z創(chuàng)造人的故事,可不是“造人” 的工作倔撞,這個(gè)詞被現(xiàn)代人濫用了。這個(gè)故事是說(shuō)慕趴,女?huà)z在補(bǔ)了后痪蝇,下到凡間一看,哇塞冕房, 風(fēng)景優(yōu)美了躏啰,空是湛藍(lán)的,水是清澈的耙册,空氣是清新的给僵,美麗了,然后就待時(shí)間長(zhǎng)了 就有點(diǎn)寂寞了详拙,沒(méi)有動(dòng)物帝际,這些看的到都是靜態(tài)的東西呀,怎么辦饶辙?
別忘了是神仙呀蹲诀,沒(méi)有辦不到的事情,于是女?huà)z就架起了八卦爐(技術(shù)術(shù)語(yǔ):建立工廠) 開(kāi)始創(chuàng)建人弃揽,具體過(guò)程是這樣的:先是泥巴捏脯爪,然后放八卦爐里烤,再扔到地上成長(zhǎng)矿微,但是 以外總是會(huì)產(chǎn)生的:
第一次烤泥人痕慢,茲茲茲茲,感覺(jué)應(yīng)該熟了涌矢,往地上一扔掖举,biu~,一個(gè)白人誕生了娜庇,沒(méi) 烤熟拇泛!
第二次烤泥人,茲茲茲茲茲茲茲茲~~思灌,上次都沒(méi)烤熟俺叭,這次多烤會(huì)兒,往地上一扔泰偿,嘿熄守, 熟過(guò)頭了,黑人哪!
第三次烤泥人裕照,茲茲~攒发,一邊烤一邊看著,嘿好了晋南,成了惠猿,就優(yōu)品,黃色人種负间! 那這個(gè)過(guò)程我們就用程序來(lái)表現(xiàn):

首先定義一個(gè)人類(lèi)的總稱(chēng):

public interface Human {
    //首先定義什么是人類(lèi) 
    //人是愉快的偶妖,會(huì)笑的,本來(lái)是想用smile表示政溃,想了一下laugh更合適趾访,好長(zhǎng)時(shí)間 沒(méi)有大笑了; 
     public  void laugh();
     
     //人類(lèi)還會(huì)哭董虱,代表痛苦 
     public void cry();
     
     //人類(lèi)會(huì)說(shuō)話 
     public void talk();   
  
}

然后是具體的人種

public class WhiteHuman implements Human {
    @Override
    public void laugh() {
        System.out.println("白色人種會(huì)大笑扼鞋,侵略的笑聲"); 
    }
    @Override
    public void cry() {
        System.out.println("白色人種會(huì)哭"); 
    }
    @Override
    public void talk() {
        System.out.println("白色人種會(huì)說(shuō)話,一般都是但是單字節(jié)愤诱!"); 
    }
}

public class BlackHuman implements Human{
    @Override
    public void laugh() {
        System.out.println("黑人會(huì)笑"); 
    }
    @Override
    public void cry() {
        System.out.println("黑人會(huì)哭"); 
    }
    @Override
    public void talk() {
        System.out.println("黑人可以說(shuō)話云头,一般人聽(tīng)不懂"); 
    }
}

public class YellowHuman implements Human {

    @Override
    public void laugh() {
        System.out.println("黃色人種會(huì)大笑,幸福呀淫半!"); 

    }

    @Override
    public void cry() {
        System.out.println("黃色人種會(huì)哭"); 

    }

    @Override
    public void talk() {
        System.out.println("黃色人種會(huì)說(shuō)話盘寡,一般說(shuō)的都是雙字節(jié)"); 
    }

}

到這里,人種也定義完畢了撮慨,接下來(lái)該把生成人們的八卦爐造出來(lái)了:

public class HumanFactory {
    //定義一個(gè)烤箱竿痰,泥巴塞進(jìn)去,人就出來(lái)砌溺,這個(gè)先進(jìn)了 
    public static Human createHuman(Class c){   
        //定義一個(gè)類(lèi)型的人類(lèi) 
        Human human=null;  
        try { 
            human = (Human)Class.forName(c.getName()).newInstance();   //產(chǎn)生一個(gè)人種 
        } catch (InstantiationException e) {//你要是不說(shuō)個(gè)人種顏色的話影涉,沒(méi)法 烤,要白的黑规伐,你說(shuō)話了才好烤 
            System.out.println("必須指定人種的顏色");   
        } catch (IllegalAccessException e) { //一定定義的人種有問(wèn)題蟹倾,那就烤 不出來(lái)了,這是... 
            System.out.println("人種定義錯(cuò)誤猖闪!");   
        } catch (ClassNotFoundException e) { //你隨便說(shuō)個(gè)人種鲜棠,我到哪里給你 制造去?培慌! 
            System.out.println("混蛋豁陆,你指定的人種找不到!"); 
        }  
            return human; 
    } 
}

終于到我們的女?huà)z了:


public class NvWa {
    public static void main(String[] args) { 
         //女?huà)z第一次造人吵护,試驗(yàn)性質(zhì)盒音,少造點(diǎn)表鳍,火候不足,缺陷產(chǎn)品  
        System.out.println("------------造出的第一批人是這樣的:白人-----------------"); 
        Human whiteHuman = HumanFactory.createHuman(WhiteHuman.class); 
        whiteHuman.cry(); 
        whiteHuman.laugh(); 
        whiteHuman.talk(); 
         //女?huà)z第二次造人祥诽,火候加足點(diǎn)譬圣,然后又出了個(gè)次品,黑人   
        System.out.println("\n\n------------造出的第二批人是這樣的:黑人-----------------"); 
        Human blackHuman = HumanFactory.createHuman(BlackHuman.class); 
        blackHuman.cry(); 
        blackHuman.laugh(); 
        blackHuman.talk(); 
         //第三批人了雄坪,這次火候掌握的正好厘熟,黃色人種(不寫(xiě)黃人,免得引起歧義)维哈,備注: RB人不屬于此列   
        System.out.println("\n\n------------造出的第三批人是這樣的:黃色人種-----------------"); 
        Human yellowHuman = HumanFactory.createHuman(YellowHuman.class); 
        yellowHuman.cry(); 
        yellowHuman.laugh(); 
        yellowHuman.talk(); 
    } 
}

上述就是簡(jiǎn)單工廠方法模式绳姨,它并不是設(shè)計(jì)模式中的一種。
接下來(lái)是工廠模式:

白人笨农,黑人,黃種人都在一個(gè)工廠中制造出來(lái)帖渠,這樣造出來(lái)的三色人種都在一起谒亦,那么造出來(lái)以后還要進(jìn)行區(qū)分歸類(lèi),然后才能把他們送往歐亞非三大陸空郊,太麻煩了份招。
于是我們需要重新造三個(gè)爐子一種爐子生產(chǎn)一個(gè)人種,都仿照這個(gè)爐子的模子去做:
首先把人類(lèi)工廠的模型提取出來(lái)(即改變上面的HumanFactory 類(lèi)為一個(gè)接口):

public interface HumanFactory {
    //定義一個(gè)烤箱狞甚,泥巴塞進(jìn)去锁摔,人就出來(lái),這個(gè)先進(jìn)了 
    public Human createHuman();
}

然后是依照這個(gè)模子做的三個(gè)爐子

public class WhiteHuman implements Human {
    @Override
    public void laugh() {
        System.out.println("白色人種會(huì)大笑哼审,侵略的笑聲"); 
    }
    @Override
    public void cry() {
        System.out.println("白色人種會(huì)哭"); 
    }
    @Override
    public void talk() {
        System.out.println("白色人種會(huì)說(shuō)話谐腰,一般都是但是單字節(jié)!"); 
    }
}

public class BlackHuman implements Human{
    @Override
    public void laugh() {
        System.out.println("黑人會(huì)笑"); 
    }
    @Override
    public void cry() {
        System.out.println("黑人會(huì)哭"); 
    }
    @Override
    public void talk() {
        System.out.println("黑人可以說(shuō)話涩盾,一般人聽(tīng)不懂"); 
    }
}
public class YellowHumanFactory implements HumanFactory {
    @Override
    public Human createHuman() {
        return new YellowHuman();
    }
}

三個(gè)爐子也造好了十气,女?huà)z可以用新?tīng)t子來(lái)造人啦!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末春霍,一起剝皮案震驚了整個(gè)濱河市砸西,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌址儒,老刑警劉巖芹枷,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莲趣,居然都是意外死亡鸳慈,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)喧伞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蝶涩,“玉大人理朋,你說(shuō)我怎么就攤上這事÷唐福” “怎么了嗽上?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)熄攘。 經(jīng)常有香客問(wèn)我兽愤,道長(zhǎng),這世上最難降的妖魔是什么挪圾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任浅萧,我火速辦了婚禮,結(jié)果婚禮上哲思,老公的妹妹穿的比我還像新娘洼畅。我一直安慰自己,他們只是感情好棚赔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布帝簇。 她就那樣靜靜地躺著,像睡著了一般靠益。 火紅的嫁衣襯著肌膚如雪丧肴。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,274評(píng)論 1 300
  • 那天胧后,我揣著相機(jī)與錄音芋浮,去河邊找鬼。 笑死壳快,一個(gè)胖子當(dāng)著我的面吹牛纸巷,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播眶痰,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼何暇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了凛驮?” 一聲冷哼從身側(cè)響起裆站,我...
    開(kāi)封第一講書(shū)人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黔夭,沒(méi)想到半個(gè)月后宏胯,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡本姥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年肩袍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婚惫。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡氛赐,死狀恐怖魂爪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情艰管,我是刑警寧澤滓侍,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站牲芋,受9級(jí)特大地震影響撩笆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜缸浦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一夕冲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧裂逐,春花似錦歹鱼、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至篙悯,卻和暖如春蚁阳,著一層夾襖步出監(jiān)牢的瞬間铃绒,已是汗流浹背鸽照。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留颠悬,地道東北人矮燎。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像赔癌,于是被迫代替她去往敵國(guó)和親诞外。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

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

  • 一灾票、OC中幾種常用的設(shè)計(jì)模式 1.單例模式(Singleton) 在iOS開(kāi)發(fā)我們經(jīng)常碰到只需要某類(lèi)一個(gè)實(shí)例的情況...
    JasonEVA閱讀 1,011評(píng)論 0 3
  • 萃》:大地選萃 ·《周易》中的《女?huà)z造人》 2017-03-06 05:13閱讀:587 《萃》:大地選萃 ·《周...
    兌易說(shuō)事閱讀 4,354評(píng)論 1 3
  • 文/蘭風(fēng) 圖/暗紫 流云暗涌藍(lán)心波動(dòng) 黃昏一夕之間投下的影 希望中纏繞著的絕望理不清 不愿說(shuō)出的殤 選擇...
    蘭風(fēng)蕙露閱讀 297評(píng)論 4 4
  • 1峡谊、課堂的節(jié)奏太重要,40分鐘刊苍,應(yīng)該是多活動(dòng)既们,多任務(wù)切換的,不然小朋友是坐不住的正什。警惕一個(gè)任務(wù)太長(zhǎng)時(shí)間啥纸,小朋友容易...
    丁爸閱讀 644評(píng)論 0 50
  • 幾乎每天都能接到各個(gè)培訓(xùn)機(jī)構(gòu)的電話或者短信。對(duì)我女兒的各門(mén)學(xué)科的關(guān)心婴氮,詢問(wèn)是否有需求斯棒,他們能提供的各種幫助盾致,非常真...
    djm981121閱讀 239評(píng)論 0 0