1. 程式人生 > >架構(三層架構)、框架(MVC)、設計模式三者異同點

架構(三層架構)、框架(MVC)、設計模式三者異同點

前言:

本部落格主要針對架構、框架和設計模式三者的區別、還有三層和MVC的區別進行討論、對於這三者一點都不瞭解的、請點在維基和百度百科上補補課、這裡就不發連結了

軟體架構(software architecture)

軟體的架構是系統的一個草圖、闡述了各個元件之間的通訊、劃分層次、一旦系統開始詳細設計、架構藍圖就很難甚至無法更改、是由軟體架構師從無到有設計出來的。

       例: 三層架構:一種設計軟體架構的思想

               把軟體上從邏輯上分為、表示層(UI)業務邏輯層(BLL)資料訪問層(DAL)

              目的:低耦合、高內聚、各司其職、達到易更換、修改、可以分散部署、編碼。

軟體框架(Softwareframework)

軟體框架是在一定領域內、別人已經對這個領域製作軟體所需的基礎架構功能、進行了總結、做出了有程式碼實體的軟體框架結構、如果要製作這一領域的軟體、可以在別人寫好的框架上、繼續設計、編寫自己的軟體、骨頭架上填肉、框架有一定的侷限性。

例:MVC(框架)

  英文Model View Controller、是針對Web開發、已經寫好有程式碼的框架、分別為M模型(model)-V檢視(view)-C控制器(controller)三部分

          目的:模型和檢視分離開、使得一個模型可被多個檢視使用、簡單說就是同樣的一個網站、用手機的檢視(介面)和電腦的檢視、可以共用一個模型。

設計模式(Design pattern)

對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案、是一種解決方案的思想、不拘泥於程式碼、通常以型別或物件來描述其中的關係和相互作用、依賴與抽象、來達到解耦和、可寬展、易維護等、設計模式是用來解決問題的。

三者區別

軟體架構是指軟體架構師在製作軟體的時候、對軟體規劃的一種藍圖、一般是分層、畫出各個元件的關係。

軟體框架是指在特定的領域內、已經有人寫好的框架(有程式碼)、框架有侷限性、只限特定領域。

設計模式是指標對一些程式設計實際的問題所提出的抽象解決方案、用類與類之間的關係相互作用、達到目的。

三層架構與MVC的區別

根本區別是三成是機構而MVC是框架、MVC是應用與Web別人已經寫好的程式碼、如ASP.NET就可以直接點選MVC、會自動生成框架程式碼、而三層是做軟體自己劃分的、是一種製作軟體的思想。

有圖有真相、下面是ASP.NET的建專案

             

             

他倆的共同點就是都分成了三個、折讓人們很容易誤解

而且三層的UI層與MVC的M和C、功能很像

而MVC的V和BLL和DLL、功能很像

如圖


雖然相似、但是從根本上就不是一個東西呦!因為架構是一種做軟體的思想、而框架是人們已經對特定領域軟體的共同特性、所編寫好的程式碼成品。

所以

軟體架構>軟體框架>設計模式

當然從解耦和的觀點來看、這三個都是以解耦為目的、也是面向物件、做出更好的程式、所以什麼一樣不一樣的、是看在哪個層面看

如:

你買了兩個iPhone6手機是一樣嗎?

          從型號來看、都是蘋果6手機、是一樣的

          從安裝軟體上比可能就不一樣了

           所以、有人說MVC和三成架構是一個東西、沒錯、都是為了解耦和、有人說MVC和三層架構不是一個東西、也對、MVC有實際的框架程式碼、三層架構是做軟體的一種思想、就好像設計模式一樣、三層是做軟體的思想、設計模式是解決問題的思想。

           正所謂:橫看成嶺側成峰、遠近高低各不同、事事無絕對、多學多理解、今天寫的挺濃縮的、希望能幫到大家、也希望大家看到也能多給我提提建議、謝謝!

———————————————想跟503說再見……———————————————

——————————————chenchen———————————————