面向?qū)ο蟮木幊炭偸潜苊獠涣藙?chuàng)建對象,更加之任何事物都可看做對象,這樣子我們書寫代碼的時候,就會遇到各種千奇百怪的問題。需要一個合理的模式完成對象的創(chuàng)建。
? ? ?集團、工廠、產(chǎn)品線。
? ? ? ? ? ?假設(shè)工地現(xiàn)在需要一堆建筑材料,有長方形的墻體,原型的柱子三角形的屋頂還有些許當(dāng)前未知但后期會出現(xiàn)的需求 ? ?這個時候可以采取 集團 工廠產(chǎn)品線的方式.
? ? ? ? ? ?集團:我們當(dāng)前需要的建筑材料的生產(chǎn)商
? ? ? ? ? ?工廠:集團下屬負(fù)責(zé)生產(chǎn)材料的廠家
? ? ? ? ? ? 產(chǎn)品線:工廠里面負(fù)責(zé)制造產(chǎn)品的單位
需求分析:
? ? ? ? ? ?建筑材料: ? 尋找建筑廠商
? ? ? ? ? ?材料批次: ? 尋找工廠
? ? ? ? ? ?材料生產(chǎn): ? 尋找產(chǎn)品線?
? ? ? ? ? ?根據(jù)這個模式,我們來試著去創(chuàng)建對象
第一步:開個招標(biāo)會 招標(biāo),集團投標(biāo)
? ? ? ? ? ?var ?coMetting = new CoMetting();
? ? ? ? ? ?參加招標(biāo)會的集團有
? ? ? ? ?var ? co_nokia='nokia';
? ? ? ? ?var ? co_huawei='huawei';
? ? ? ? ?var ? co_Zte ='zte';
? ? ? ? var ?co_xxx='xx';?
第二步:招標(biāo)會競爭很激勵,大集團使用渾身解數(shù),終于有一家集團拿到了標(biāo)。以后我們要建筑材料的時候就去這個集團發(fā)需求了。
? ? ? ? var? co=coMetting.getCo('huawei')
?第三步:集團拿到標(biāo)了,有生意了,肯定需要和工地交流看看到底需要什么樣的產(chǎn)品,什么檔次的產(chǎn)品,什么版本的 ? ? ? ? ?產(chǎn)品。然后交由工場去生產(chǎn)。
? ? ?var ? ?best = ‘best’;
? ? ?var ?secon=‘second’
? ? var ?xx=‘xx’;
? ? 根據(jù) ?好壞或者檔次對工場命名
? 綜合考慮選擇了意見性價比較高的廠家 ??
? var? factoryt = co.getFactory(second);
第四步:簽了合同就該開始準(zhǔn)備上生產(chǎn)線了,工廠有很多條生產(chǎn)線,不同生產(chǎn)線生產(chǎn)不同的東西。
? ? ? ?選擇的共產(chǎn)有以下 產(chǎn)品線:
? ? ?var ?boxDept=‘box’;
? ? ?var ?cylinderDept='cylinder';
? ? ?var ?xx='xx'
var? boxDept=? factoryt.getDept(‘box')工地可能需要多種建筑材料
var? cylinderDept =factoryt.getDept(‘cylinder')
第五步:生產(chǎn)
? ? ? 工地說我需要一個 ?長寬高分別為 100,100,100 的墻(是個正方體吧),這個時候向生產(chǎn)線發(fā)個消息告訴規(guī)格
? ? ? ?var msg= ? ? ? {x:100,y:100,z:100}?
? ? ? ?然后讓生產(chǎn)線去生產(chǎn),生產(chǎn)線生產(chǎn)完了之后給他返回一個box
? ? ? ?var box =boxDept.create(msg);
第六步:定制需要
? ? ? ?好吧這一步是給不停改需求的產(chǎn)品經(jīng)理設(shè)計的
? ? ? ? 產(chǎn)品經(jīng)理說我要的墻能安裝銷毀(很好理解,不能安裝不能拆的墻沒法用)
? ? ? ?那么產(chǎn)品線就要給我的box 提供一下方法
? ? ?box.show()
? ? ?box.destory();
? ? ? ?有一天產(chǎn)品經(jīng)理說:‘我要一面神奇的墻,萬一遇到事故了,我的墻能飛,我就沒事了”。
? ? ? ?這個時候只需要通知生產(chǎn)線給墻安裝兩個翅膀了。
? ? ? ? 然后產(chǎn)品經(jīng)理就可以
? ? ? ? ?box.fly();
====================================
結(jié)語:
? ?工地要一塊轉(zhuǎn)不一定這么麻煩
? ? 第一:我們工地有合作伙伴,那么就不要開招標(biāo)會了,可以直接找合作集團。
? ? 第二: ? ?我們工地供貨穩(wěn)定,一直都是由同一個廠家供貨的,此時直接找廠家就ok。
? ?第三: ? ? 我們只需要你一批轉(zhuǎn),直接找個產(chǎn)品線,告訴產(chǎn)品線生產(chǎn)就行。
? ?第四: ? ? 我們工地保安缺一塊磚頭砸人,直接在外面找一塊轉(zhuǎn)就行。
本文完成:
? ? 對象是活的,模式也是活的。沒有最好的模式,只有最優(yōu)最合適的模式。