小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

分層開(kāi)發(fā)思想與小籠包 - 『 天道酬勤 』 www.LiTianPing.com - 博客...

 昵稱(chēng)23428 2007-03-28
    早上吃早點(diǎn)的時(shí)候,突發(fā)靈感,結(jié)合吃的小籠包和日常的開(kāi)發(fā)經(jīng)驗(yàn)來(lái)說(shuō)一下分層的應(yīng)用。

 

 

 

 

首先,談一下什么是層架構(gòu),所謂的層開(kāi)發(fā)就是將整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層-業(yè)務(wù)邏輯層―數(shù)據(jù)訪(fǎng)問(wèn)層-數(shù)據(jù)庫(kù)等,有的還要細(xì)一些,明確地將客戶(hù)端的表示層、業(yè)務(wù)邏輯訪(fǎng)問(wèn)、和數(shù)據(jù)訪(fǎng)問(wèn)及數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)劃分出來(lái),十分有利于系統(tǒng)的開(kāi)發(fā),維護(hù)、部署和擴(kuò)展。

 

 

 

 

軟件要分層,其實(shí)總結(jié)一句話(huà),是為了實(shí)現(xiàn)“高內(nèi)聚、低耦合”。采用“分而治之”的思想,把問(wèn)題劃分開(kāi)來(lái)各個(gè)解決,易于控制,易于延展,易于分配資源。  

 

這種三層結(jié)構(gòu)有什么優(yōu)勢(shì)呢?  

 

1. 通過(guò)將整個(gè)系統(tǒng)分為不同的邏輯塊,大大降低了應(yīng)用系統(tǒng)開(kāi)發(fā)和維護(hù)的成本。

 

 

 

 

三層結(jié)構(gòu)將表示部分和業(yè)務(wù)邏輯部分按照客戶(hù)層和應(yīng)用服務(wù)器相分離,客戶(hù)端和應(yīng)用服務(wù)器、應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器之間的通信以及異構(gòu)平臺(tái)之間的數(shù)據(jù)交換等都可以通過(guò)中間件或者相關(guān)程序來(lái)實(shí)現(xiàn)。當(dāng)數(shù)據(jù)庫(kù)或者應(yīng)用服務(wù)器的業(yè)務(wù)邏輯改變時(shí),客戶(hù)端并不需要改變,反之亦然,從而大大提高了系統(tǒng)模塊的復(fù)用性,縮短了開(kāi)發(fā)周期,降低了維護(hù)費(fèi)用。

 

 

 

 

趣味理解

 

 

 

 

假設(shè)飯店這樣來(lái)做小籠包:

 

 

 

 

一層蒸餃,

 

 

 

 

一層肉包,

 

 

 

 

一層素包。

 

 

 

 

首先這種方式我們可以讓做包子的分成不同的小組,來(lái)負(fù)責(zé)做不同的包子。當(dāng)做好了每一種包子,他們可以很方便的知道,該放到哪個(gè)籠里,不至于挨個(gè)去查看該放在哪里,我們也很容易地將籠屜放到火上面去,而不會(huì)影響其他籠的加熱。當(dāng)我們要吃肉包或蒸餃時(shí),我們也很容易就能找到我們所需要的,非常節(jié)省時(shí)間和體力。把肉包或蒸餃拿走或者增加,并不影響素包的加熱。

 

 

 

 

如果我們把這些都放在一個(gè)大籠里,你覺(jué)得會(huì)怎么樣?會(huì)不會(huì)很亂,維護(hù)起來(lái)很浪費(fèi)時(shí)間,不但找起來(lái)麻煩,而其每次揭開(kāi)鍋都會(huì)對(duì)其他的有影響。  

 

2. 將數(shù)據(jù)訪(fǎng)問(wèn)和邏輯操作都集中到組件中,增強(qiáng)了系統(tǒng)的復(fù)用性。

 

 

 

 

如:將數(shù)據(jù)訪(fǎng)問(wèn)集中到數(shù)據(jù)訪(fǎng)問(wèn)層的組件中,從而減少了應(yīng)用程序中的重復(fù)代碼,每個(gè)需要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)、表的窗體都使用相同的組件。

 

 

 

 

如:一些共性的邏輯操作都集中封裝在邏輯層的組件中,每一個(gè)使用該方法的操作,可以共享來(lái)訪(fǎng)問(wèn)該組件。

 

 

 

 

趣味理解:

 

 

 

 

簡(jiǎn)單的理解,籠屜本身就是一個(gè)重用的例子,如果我們使用一次性的籠(像一次性筷子一樣理解),會(huì)浪費(fèi)多少人工來(lái)做啊(重復(fù)編寫(xiě)麻煩),并且會(huì)有很大的資源浪費(fèi)(代碼冗余),最后還要進(jìn)行垃圾處理(后期維護(hù))。并且,如果籠屜和爐火的鍋按一種規(guī)范和標(biāo)準(zhǔn)(接口)來(lái)做,這樣的籠屜不但可以在這里用,也可以拿到別的地方用。(雖然這樣理解不太確切,簡(jiǎn)單的這樣理解好了)  

 

3. 系統(tǒng)的擴(kuò)展性大大增強(qiáng)。

 

 

 

 

模塊化使得系統(tǒng)很容易在縱向和水平兩個(gè)方向拓展:一方面可以將系統(tǒng)升級(jí)為更大、更有力的平臺(tái),同時(shí)也可以適當(dāng)增加規(guī)模來(lái)增強(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)在需要增加新品種,如蒸饅頭,蒸地瓜,那么直接可以增加一層籠就是了,對(duì)其他籠不會(huì)有什么影響。  

 

三層結(jié)構(gòu)在營(yíng)造企業(yè)競(jìng)爭(zhēng)優(yōu)勢(shì)中的作用主要體現(xiàn)在模塊化設(shè)計(jì)使得用戶(hù)在現(xiàn)有結(jié)構(gòu)的基礎(chǔ)上實(shí)現(xiàn)了系統(tǒng)擴(kuò)展,從而提高企業(yè)信息化的速度和業(yè)務(wù)水平;同時(shí)三層結(jié)構(gòu)中中間件的出現(xiàn)使得用戶(hù)可以直接從市場(chǎng)上選擇合適的產(chǎn)品來(lái)構(gòu)建系統(tǒng),大大降低了開(kāi)發(fā)周期和開(kāi)發(fā)費(fèi)用。  

 

但分層結(jié)構(gòu)也有缺點(diǎn)也不是越多越好,那樣管理很多層會(huì)比較麻煩,運(yùn)行效率可能比較低。所以,一個(gè)具備良好層次結(jié)構(gòu)的系統(tǒng),其層的數(shù)目要恰到好處才行。  

 

(作者:李天平    轉(zhuǎn)載請(qǐng)注明)

 


評(píng)論

# re: 分層開(kāi)發(fā)思想與小籠包 2005-12-03 11:45 聽(tīng)棠.NET
非常支持樓主的意見(jiàn)。分層的撐握是需要視項(xiàng)目而定的。
但分層是系統(tǒng)擴(kuò)展性的一個(gè)必要條件,樓主有興趣看看我的SPL(SmartPersistenceLayer),或許會(huì)有興趣吧。http://tintown.cnblogs.com/category/12787.html  回復(fù)  更多評(píng)論
  

# re: 分層開(kāi)發(fā)思想與小籠包 2005-12-03 15:43 POLARIS
有點(diǎn)意思。我感覺(jué)分層主要是要符合高內(nèi)聚、低耦合的原則。這是我們寫(xiě)程序的核心  回復(fù)  更多評(píng)論
  

# re: 分層開(kāi)發(fā)思想與小籠包 2005-12-03 20:08 mzl
不錯(cuò)!  回復(fù)  更多評(píng)論
  

# re: 分層開(kāi)發(fā)思想與小籠包 2005-12-04 00:43 calvin
@李天平:

贊同你的說(shuō)法,項(xiàng)目的層次要視項(xiàng)目的規(guī)模和業(yè)務(wù)復(fù)雜程度而定。對(duì)于簡(jiǎn)單的項(xiàng)目,采用復(fù)雜的分層,是一種負(fù)擔(dān),簡(jiǎn)單的應(yīng)用因?yàn)榉謱佣鄬?xiě)很多的代碼,非常的不xp。

同時(shí),組件化、模塊化的思想也非常重要,代碼級(jí)別的復(fù)用或者reinvent the wheel的方式難以滿(mǎn)足快速構(gòu)建項(xiàng)目的要求,成熟、靈活和高度可復(fù)用的組件(還有種說(shuō)法是基礎(chǔ)框架)是IT企業(yè)的核心競(jìng)爭(zhēng)力。  回復(fù)  更多評(píng)論
  

# re: 分層開(kāi)發(fā)思想與小籠包 2006-01-01 15:34 asweisun
目前在學(xué)軟件分層思想,
在學(xué)asp.net 分層架構(gòu),不知道樓主有沒(méi)有這方面的入門(mén)的資料介紹介紹.
看了樓主開(kāi)發(fā)的代碼自動(dòng)生成器.不過(guò)還不是很明朗^^   回復(fù)  更多評(píng)論
  

# re: 分層開(kāi)發(fā)思想與小籠包 2006-01-01 16:04 李天平
http://ltp.cnblogs.com/archive/2005/12/28/306887.aspx
除了有代碼生成器外,還有一套基于分層思想開(kāi)發(fā)的系統(tǒng)示例源碼,你可以下來(lái)看看,自己學(xué)習(xí)一下。同時(shí),代碼生成器幫助里有一點(diǎn)介紹。  回復(fù)  

本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀(guān)點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。

0條評(píng)論

發(fā)表

請(qǐng)遵守用戶(hù) 評(píng)論公約

類(lèi)似文章 更多

<tbody id="0bhs7"><acronym id="0bhs7"></acronym></tbody>