機(jī)房收費(fèi)系統(tǒng)--設(shè)計(jì)模式思考
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-05-12 09:15:35 閱讀次數(shù):3294次
今天與阿真同學(xué)簡(jiǎn)略討論了1下外觀模式和抽象工廠+反射+配置文件在機(jī)房重構(gòu)中的利用,引發(fā)了幾個(gè)簡(jiǎn)單的思考,現(xiàn)與君共勉:
思考再3:B層方法是實(shí)現(xiàn)對(duì)數(shù)據(jù)表的增刪改查進(jìn)行邏輯操作,而且還要斟酌解耦效果(我是這么理解耦合的,如果1個(gè)類中只放1個(gè)方法,1旦出錯(cuò),它只影響自己,耦合度就低;如果有10個(gè)方法,1個(gè)方法出錯(cuò),該類的實(shí)例化就會(huì)出錯(cuò),這樣耦合程度就越強(qiáng)),所以B層的類中放的方法不應(yīng)太多;斟酌到每一個(gè)窗體大部份都是對(duì)1張表進(jìn)行的操作,這樣,將每張表對(duì)應(yīng)的增刪改查操作放到1個(gè)B層類中,大部份調(diào)用時(shí)只需要實(shí)例化1個(gè)B層類就能夠?qū)崿F(xiàn)對(duì)全部窗體的操縱任務(wù),既減少程序履行流程,又減輕電腦負(fù)擔(dān),何樂而不為呢?
2. 外觀層可不可以用1個(gè)類來(lái)實(shí)現(xiàn)呢?對(duì)照于1個(gè)窗體1個(gè)facade類有甚么區(qū)分?外觀類依照數(shù)據(jù)表來(lái)分有甚么壞處?
討論想法:外觀類先對(duì)方法實(shí)例化然后再調(diào)用的,每實(shí)例化1次,相當(dāng)于把外觀中用到的類都實(shí)例化了1次,不管是用到還是沒有用到的。
如果facade用1個(gè)類實(shí)現(xiàn)所有B層方法,那末20多個(gè)窗體每一個(gè)窗體調(diào)用都要實(shí)例化1次facade類,就是B層所有的方法都調(diào)用了20屢次,造成大量無(wú)用程序的履行。
1個(gè)窗體1個(gè)facade類,用到facade類中實(shí)例化的方法都是馬上要用到的,這樣所有B層方法實(shí)例化次數(shù)大大下降,基本上就是每一個(gè)履行1-⑵次,這樣電腦的負(fù)擔(dān)不會(huì)很大了。
還是一樣的分析方法,雖然B層方法不會(huì)調(diào)用屢次,但諸如上機(jī)結(jié)賬等窗體不止用到1張表,而恰恰Facade類也是依照表分的,那末對(duì)Facade類的調(diào)用次數(shù)必將會(huì)增加。
3. 抽象工廠+反射+配置文件的利用優(yōu)勢(shì)
說(shuō)到工廠家族,難免會(huì)想到它們對(duì)switch語(yǔ)句的鐘愛,但如果數(shù)據(jù)庫(kù)表的數(shù)目過(guò)于龐大,又要求可使用不同的數(shù)據(jù)庫(kù)切換時(shí),swtich難免會(huì)增加許多無(wú)謂的判斷,這樣通過(guò)工廠+反射+配置文件的方式,實(shí)現(xiàn)對(duì)D層方法直接調(diào)用,同時(shí)容易實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的切換。
【總結(jié)】
在機(jī)房設(shè)計(jì)早期只是聽說(shuō)這些設(shè)計(jì)方法和設(shè)計(jì)模式就直接加以利用了,而且對(duì)外觀模式利用認(rèn)識(shí)不到位,致使U層出現(xiàn)了很多邏輯判斷,反過(guò)頭來(lái)思考才能意想到這些設(shè)計(jì)模式的妙處,相信對(duì)接下來(lái)的設(shè)計(jì)模式的利用學(xué)習(xí)會(huì)更加靈活方便。
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)