三層模式的思考

來源:互聯網
上載者:User

UI,邏輯,資料三層模式是最為經典的面向大規模資料處理的項目情境的解決方案。

下面是我的看法:

UI層使用邏輯層,而邏輯層使用資料層。

也就是,UI依賴邏輯,邏輯依賴資料。從物件導向角度,資料層位於抽象的頂端。

物件導向的原則,是抽象頂端盡量不要變動,否則依賴他的底層必然需要修改。而底層可以變動,頂層無需更改。

在這種三層模式下,資料層是最不允許變動的。

不過實際項目的後期維護中,我們絕不會無端端為了修改UI而修改UI,而是使用者的需求發生了變化,其中變化的主要層次,就是資料層的變化。這種現實下,三層模式是否已經失去意義了?

應該說這種現實,會讓三層模式失去很多架構上的優勢,但是三層模式有助程式的物件導向化。資料層內部的結構改善後,有兩個優點:一、和實體儲存體分離;二、資料實體局部化,比如教師和學生兩個資料實體,只是修改教師部分,也只會影響依賴教師部分的邏輯和UI,而不會影響學生部分。

實施三層模式,有助開發從上至下,從抽象到具體,從資料層到UI層進行,減少開發方向混亂造成的重複修改。

其餘補充:

資料層的變動這裡說的是資料結構上的變動,而不是儲存等細節的變動。因為儲存細節是資料層的任務:資料層的任務就是抽象了資料的儲存位置,以提供一個統一的資料結構給其他部分使用。從物件導向角度,資料層的變動說的是介面的變動,而不是實現的變動。

三層模式,還有一個普遍的要求是分離UI層和資料層的控制關係,用邏輯層做為互動的橋樑。但是要注意這裡說的是控制關係,而不是物件導向語言所謂的依賴關係。UI層對資料層的依賴是天然的,雖然某種意義上可以減少這種直接的依賴,但是沒有必要刻意去做這件事。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.