分層開發思想與小籠包

巴扎黑
發布: 2017-04-30 10:26:09
原創
1495 人瀏覽過

  早上吃早點的時候,突發靈感,結合吃的小籠包和日常的開發經驗來說一下分層的應用。 

首先,談談什麼是三層架構,所謂的三層開發就是將整個業務應用劃分為表示層-業務邏輯層―資料存取層-資料庫等,有的還要細一些,明確地將客戶端的表示層、業務邏輯存取、和資料存取及資料庫存取劃分出來,十分有利於系統的開發,維護、部署和擴展。 

  軟體要分層,其實總結一句話,是為了實現「高內聚、低耦合」。採用「分而治之」的思想,把問題分割開來各個解決,易於控制,易於延展,易於分配資源。  

  這種三層結構有什麼優點呢?  

  1. 透過將整個系統分為不同的邏輯區塊,大大降低了應用系統開發和維護的成本。 

三層結構將表示部分和業務邏輯部分按照客戶層和應用伺服器相分離,客戶端和應用伺服器、應用伺服器和資料庫伺服器之間的通訊以及異質平台之間的資料交換等都可以透過中間件或者相關程序來實現。當資料庫或應用伺服器的業務邏輯改變時,客戶端並不需要改變,反之亦然,從而大大提高了系統模組的複用性,縮短了開發週期,降低了維護費用。 

  趣味理解: 

  假設飯店可以這樣做小籠包:  

  一層蒸餃,  

  一層肉包,      

  一層素包。  

  首先這種方式我們可以讓做包子的分成不同的小組,來負責做不同的包子。當做好了每一種包子,他們可以很方便的知道,該放到哪個籠裡,不至於挨個去查看該放在哪裡,我們也很容易地將籠子放到火上面去,而不會影響其他籠的加熱。當我們要吃肉包或蒸餃時,我們也很容易找到我們所需要的,非常節省時間和體力。把肉包或蒸餃拿走或增加,並不影響素包的加熱。  

  如果我們把這些都放在一個大籠子裡,你覺得會怎麼樣?會不會很亂,維護起來很浪費時間,不但找起來麻煩,而其每次揭開鍋子都會對其他的有影響。   

  2. 將資料存取和邏輯操作都集中到元件中,增強了系統的複用性。  

  如:將資料存取集中到資料存取層的元件中,從而減少了應用程式中的重複程式碼,每個需要存取資料庫、表格的窗體都使用相同的元件。  

  如:一些共性的邏輯操作都集中封裝在邏輯層的元件中,每一個使用該方法的操作,可以共用來存取該元件。  

  趣味理解:  

簡單的理解,籠抽屜本身就是一個重用的例子,如果我們使用一次性的籠(像一次性筷子一樣理解),會浪費多少人工來做啊(重複編寫麻煩),並且會有很大的資源浪費(程式碼冗餘),最後還要進行垃圾處理(後期維護)。並且,如果籠子和爐火的鍋子是依照一種規範和標準(接口)來做,這樣的籠子不但可以在這裡用,也可以拿到別的地方用。 (雖然這樣理解不太確切,簡單的這樣理解好了) 

  3. 系統的擴展性大大增強。 

  模組化使得系統很容易在縱向和水平兩個方向拓展:一方面可以將系統升級為更大、更有力的平台,同時也可以適當增加規模來增強系統的網路應用。由於擺脫了系統同構性的限制,使得分佈資料處理成為可能。在擴充或修改功能時,基本上不會破壞原有結構的穩定性。  

  趣味理解: 

  隨著顧客的需要,我們現在需要增加新品種,如蒸饅頭,蒸地瓜,那麼直接可以增加一層籠就是了,對其他籠不會有什麼影響。   

三層結構在營造企業競爭優勢中的作用主要體現在模組化設計使得用戶在現有結構的基礎上實現了系統擴展,從而提高企業資訊化的速度和業務水平;同時三層結構中中間件的出現使得用戶可以直接從市場上選擇合適的產品來建立系統,大大降低了開發週期和開發成本。   

  但分層結構也有缺點也不是越多越好,那樣管理很多層會比較麻煩,運作效率可能比較低。所以,一個具備良好層次結構的系統,其層的數目要恰到好處才行。

相關文件:三層架構與養豬

以上是分層開發思想與小籠包的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!