發(fā)文章
發(fā)文工具
撰寫
網(wǎng)文摘手
文檔
視頻
思維導(dǎo)圖
隨筆
相冊
原創(chuàng)同步助手
其他工具
圖片轉(zhuǎn)文字
文件清理
AI助手
留言交流
早上吃早點(diǎn)的時(shí)候,突發(fā)靈感,結(jié)合吃的小籠包和日常的開發(fā)經(jīng)驗(yàn)來說一下分層的應(yīng)用。
首先,談一下什么是三層架構(gòu),所謂的三層開發(fā)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層-業(yè)務(wù)邏輯層―數(shù)據(jù)訪問層-數(shù)據(jù)庫等,有的還要細(xì)一些,明確地將客戶端的表示層、業(yè)務(wù)邏輯訪問、和數(shù)據(jù)訪問及數(shù)據(jù)庫訪問劃分出來,十分有利于系統(tǒng)的開發(fā),維護(hù)、部署和擴(kuò)展。
軟件要分層,其實(shí)總結(jié)一句話,是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。采用“分而治之”的思想,把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源。
這種三層結(jié)構(gòu)有什么優(yōu)勢呢?
1. 通過將整個(gè)系統(tǒng)分為不同的邏輯塊,大大降低了應(yīng)用系統(tǒng)開發(fā)和維護(hù)的成本。
三層結(jié)構(gòu)將表示部分和業(yè)務(wù)邏輯部分按照客戶層和應(yīng)用服務(wù)器相分離,客戶端和應(yīng)用服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的通信以及異構(gòu)平臺(tái)之間的數(shù)據(jù)交換等都可以通過中間件或者相關(guān)程序來實(shí)現(xiàn)。當(dāng)數(shù)據(jù)庫或者應(yīng)用服務(wù)器的業(yè)務(wù)邏輯改變時(shí),客戶端并不需要改變,反之亦然,從而大大提高了系統(tǒng)模塊的復(fù)用性,縮短了開發(fā)周期,降低了維護(hù)費(fèi)用。
趣味理解:
假設(shè)飯店這樣來做小籠包:
一層蒸餃,
一層肉包,
一層素包。
首先這種方式我們可以讓做包子的分成不同的小組,來負(fù)責(zé)做不同的包子。當(dāng)做好了每一種包子,他們可以很方便的知道,該放到哪個(gè)籠里,不至于挨個(gè)去查看該放在哪里,我們也很容易地將籠屜放到火上面去,而不會(huì)影響其他籠的加熱。當(dāng)我們要吃肉包或蒸餃時(shí),我們也很容易就能找到我們所需要的,非常節(jié)省時(shí)間和體力。把肉包或蒸餃拿走或者增加,并不影響素包的加熱。
如果我們把這些都放在一個(gè)大籠里,你覺得會(huì)怎么樣?會(huì)不會(huì)很亂,維護(hù)起來很浪費(fèi)時(shí)間,不但找起來麻煩,而其每次揭開鍋都會(huì)對其他的有影響。
2. 將數(shù)據(jù)訪問和邏輯操作都集中到組件中,增強(qiáng)了系統(tǒng)的復(fù)用性。
如:將數(shù)據(jù)訪問集中到數(shù)據(jù)訪問層的組件中,從而減少了應(yīng)用程序中的重復(fù)代碼,每個(gè)需要訪問數(shù)據(jù)庫、表的窗體都使用相同的組件。
如:一些共性的邏輯操作都集中封裝在邏輯層的組件中,每一個(gè)使用該方法的操作,可以共享來訪問該組件。
簡單的理解,籠屜本身就是一個(gè)重用的例子,如果我們使用一次性的籠(像一次性筷子一樣理解),會(huì)浪費(fèi)多少人工來做啊(重復(fù)編寫麻煩),并且會(huì)有很大的資源浪費(fèi)(代碼冗余),最后還要進(jìn)行垃圾處理(后期維護(hù))。并且,如果籠屜和爐火的鍋按一種規(guī)范和標(biāo)準(zhǔn)(接口)來做,這樣的籠屜不但可以在這里用,也可以拿到別的地方用。(雖然這樣理解不太確切,簡單的這樣理解好了)
3. 系統(tǒng)的擴(kuò)展性大大增強(qiáng)。
模塊化使得系統(tǒng)很容易在縱向和水平兩個(gè)方向拓展:一方面可以將系統(tǒng)升級(jí)為更大、更有力的平臺(tái),同時(shí)也可以適當(dāng)增加規(guī)模來增強(qiáng)系統(tǒng)的網(wǎng)絡(luò)應(yīng)用。由于擺脫了系統(tǒng)同構(gòu)性的限制,使得分布數(shù)據(jù)處理成為可能。在擴(kuò)充或修改功能時(shí),基本不會(huì)破壞原有結(jié)構(gòu)的穩(wěn)定性。
隨著顧客的需要,我們現(xiàn)在需要增加新品種,如蒸饅頭,蒸地瓜,那么直接可以增加一層籠就是了,對其他籠不會(huì)有什么影響。
三層結(jié)構(gòu)在營造企業(yè)競爭優(yōu)勢中的作用主要體現(xiàn)在模塊化設(shè)計(jì)使得用戶在現(xiàn)有結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)了系統(tǒng)擴(kuò)展,從而提高企業(yè)信息化的速度和業(yè)務(wù)水平;同時(shí)三層結(jié)構(gòu)中中間件的出現(xiàn)使得用戶可以直接從市場上選擇合適的產(chǎn)品來構(gòu)建系統(tǒng),大大降低了開發(fā)周期和開發(fā)費(fèi)用。
但分層結(jié)構(gòu)也有缺點(diǎn)也不是越多越好,那樣管理很多層會(huì)比較麻煩,運(yùn)行效率可能比較低。所以,一個(gè)具備良好層次結(jié)構(gòu)的系統(tǒng),其層的數(shù)目要恰到好處才行。
來自: 昵稱10504424 > 《工作》
0條評(píng)論
發(fā)表
請遵守用戶 評(píng)論公約
分層開發(fā)思想與小籠包 - 『 天道酬勤 』 www.LiTianPing.com - 博客...
早上吃早點(diǎn)的時(shí)候,突發(fā)靈感,結(jié)合吃的小籠包和日常的開發(fā)經(jīng)驗(yàn)來說一下分層的應(yīng)用。首先,談一下什么是三層架構(gòu),所謂的三層開發(fā)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層-業(yè)務(wù)邏輯層―數(shù)據(jù)訪問層-數(shù)據(jù)庫等,...
大籠包子 第A14版:悅讀匯 20140703期 牡丹晚報(bào)
大籠包子 第A14版:悅讀匯 20140703期 牡丹晚報(bào) 大籠包子,顧名思義,是用大籠屜蒸的包子,與水煎包同是魯西南傳統(tǒng)小吃。在舊時(shí)的集市...
64.包子
64.包子。其實(shí)吃這種包子,其樂趣一大部分就在那一抓一吸之間。包子皮是燙面的,比燙面餃的面還...它的色、香、味、形都很獨(dú)特,比一般的包子更大更香,使人吃了還想吃,真是回味無窮。...熱氣騰騰包子的拿...
防止包子掉底露餡措施及蒸包子不粘鍋技巧
防止包子掉底露餡措施及蒸包子不粘鍋技巧蒸包子每次熟了的時(shí)候,很少在出鍋后還是完整的,都粘在蒸屜上,餡也露了,蒸屜是不銹鋼的,怎么才能不讓包子粘呢?大家是不是經(jīng)常碰到用酵母粉發(fā)面,水開了進(jìn)鍋,15分...
如何開一家“最牛”的包子鋪?
至于外賣裝包子的袋子,如果可以不用塑料袋盡量不用吧,看看是否能夠定制一些紙質(zhì)的印有店鋪信息的袋子,這樣的袋子比較透氣,不會(huì)讓包...
蒸包子是用冷水還是熱水上鍋? 大廚教你一招!
蒸包子是用冷水還是熱水上鍋? 大廚教你一招!比如在屜上抹油 再放上包子蒸,不要把包子放在屜上醒,這樣會(huì)沾,屜布弄濕后再擰干 然后撒...
包子饅頭賣相好,“蒸”是最后一關(guān)鍵,掌握了就能日進(jìn)斗金
包子饅頭賣相好,“蒸”是最后一關(guān)鍵,掌握了就能日進(jìn)斗金。包子饅頭要想賣相好,“蒸”是所有過程的最后結(jié)果,絕不能忽視,否則前功盡...
從小就愛吃媽媽做的包子, 咬上一口, 滿嘴的香味
從小就愛吃媽媽做的包子, 咬上一口, 滿嘴的香味。PS:包子要趁熱起鍋,不要怕燙手,手里蘸點(diǎn)冷水就不燙了,如果等涼了再起鍋,那包子底...
仿竹籠屜壺
仿竹籠屜壺。
微信掃碼,在手機(jī)上查看選中內(nèi)容