分層開發思想與小籠包[轉載]

來源:互聯網
上載者:User
文章目錄
  • 評論

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

 

 

 

 

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

 

 

 

 

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

 

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

 

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

 

 

 

 

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

 

 

 

 

趣味理解

 

 

 

 

假設飯店這樣來做小籠包:

 

 

 

 

一層蒸餃,

 

 

 

 

一層肉包,

 

 

 

 

一層素包。

 

 

 

 

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

 

 

 

 

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

 

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

 

 

 

 

如:將資料訪問集中到資料訪問層的組件中,從而減少了應用程式中的重複代碼,每個需要訪問資料庫、表的表單都使用相同的組件。

 

 

 

 

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

 

 

 

 

趣味理解:

 

 

 

 

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

 

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

 

 

 

 

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

 

 

 

 

趣味理解:

 

 

 

 

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

 

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

 

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

 

(作者:李天平    轉載請註明)

 

posted on 2005-12-03 01:34 李天平 閱讀(5738) 評論(11)  編輯 收藏 引用 網摘 所屬分類: ASP.NET開發 、系統分析與設計 、專案管理

評論# re: 分層開發思想與小籠包 2005-12-03 11:45 聽棠.NET 非常支援樓主的意見。分層的撐握是需要視項目而定的。
但分層是系統擴充性的一個必要條件,樓主有興趣看看我的SPL(SmartPersistenceLayer),或許會有興趣吧。http://tintown.cnblogs.com/category/12787.html  回複  更多評論
  

# re: 分層開發思想與小籠包 2005-12-03 15:43 POLARIS 有點意思。我感覺分層主要是要符合高內聚、低耦合的原則。這是我們寫程式的核心  回複  更多評論
  

# re: 分層開發思想與小籠包 2005-12-03 20:08 mzl 不錯!  回複  更多評論
  

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

贊同你的說法,項目的層次要視項目的規模和業務複雜程度而定。對於簡單的項目,採用複雜的分層,是一種負擔,簡單的應用因為分層而要多寫很多的代碼,非常的不xp。

同時,組件化、模組化的思想也非常重要,代碼層級的複用或者reinvent the wheel的方式難以滿足快速構建項目的要求,成熟、靈活和高度可複用的組件(還有種說法是基礎架構)是IT企業的核心競爭力。  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-01-01 15:34 asweisun 目前在學軟體分層思想,
在學asp.net 分層架構,不知道樓主有沒有這方面的入門的資料介紹介紹.
看了樓主開發的代碼自動產生器.不過還不是很明朗^^   回複  更多評論
  

# re: 分層開發思想與小籠包 2006-01-01 16:04 李天平 http://ltp.cnblogs.com/archive/2005/12/28/306887.aspx
除了有代碼產生器外,還有一套基於分層思想開發的系統樣本源碼,你可以下來看看,自己學習一下。同時,代碼產生器協助裡有一點介紹。  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-05-25 13:51 飄渺峰 那麼
實體和資料庫基礎類應該放在哪一層啊  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-08-07 09:11 safeking @飄渺峰
實體和資料庫基礎類應該是資料訪問層的吧  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-09-13 18:09 SoftWareBoy 向樓主學習!
我現在還是菜鳥!  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-10-16 11:56 小魚兒 好東西!學習  回複  更多評論
  

# re: 分層開發思想與小籠包 2006-10-16 11:56 小魚兒 好東西!學習  回複  更多評論

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.