架构(三层架构)、框架(MVC)、设计模式三者异同点
前言:
? ? ? ? ??本博客主要針對架構(gòu)、框架和設(shè)計模式三者的差別、還有三層和MVC的差別進行討論、對于這三者一點都不了解的、請點在維基和百度百科上補補課、這里就不發(fā)鏈接了
軟件架構(gòu)(software architecture)
? ? ? ? ??軟件的架構(gòu)是系統(tǒng)的一個草圖、闡述了各個組件之間的通訊、劃分層次、一旦系統(tǒng)開始具體設(shè)計、架構(gòu)藍圖就非常難甚至無法更改、是由軟件架構(gòu)師從無到有設(shè)計出來的。
? ? ? ?? 例: 三層架構(gòu):一種設(shè)計軟件架構(gòu)的思想
? ? ? ? ? ? ? ? ? ? ? ???把軟件上從邏輯上分為、表示層(UI)業(yè)務(wù)邏輯層(BLL)數(shù)據(jù)訪問層(DAL)
? ? ? ? ? ? ? ? ? ? ? ??目的:低耦合、高內(nèi)聚、各司其職、達到易更換、改動、能夠分散部署、編碼。
三層架構(gòu)具體解釋:http://blog.csdn.net/u010191034/article/details/24588675
軟件框架(Softwareframework)
? ? ? ? ??軟件框架是在一定領(lǐng)域內(nèi)、別人已經(jīng)對這個領(lǐng)域制作軟件所需的基礎(chǔ)架構(gòu)功能、進行了總結(jié)、做出了有代碼實體的軟件框架結(jié)構(gòu)、假設(shè)要制作這一領(lǐng)域的軟件、能夠在別人寫好的框架上、繼續(xù)設(shè)計、編寫自己的軟件、骨頭架上填肉、框架有一定的局限性。
例:MVC(框架)
? ? ? ???英文Model View Controller、是針對Web開發(fā)、已經(jīng)寫好有代碼的框架、分別為M模型(model)-V視圖(view)-C控制器(controller)三部分
? ? ? ? ??目的:模型和視圖分離開、使得一個模型可被多個視圖使用、簡單說就是相同的一個站點、用手機的視圖(界面)和電腦的視圖、能夠共用一個模型。
設(shè)計模式(Design pattern)
? ? ? ? ??對軟件設(shè)計中普遍存在(重復(fù)出現(xiàn))的各種問題,所提出的解決方式、是一種解決方式的思想、不拘泥于代碼、通常以類型或?qū)ο髞砻鑼憯⑹霎?dāng)中的關(guān)系和相互作用、依賴與抽象、來達到解耦和、可寬展、易維護等、設(shè)計模式是用來解決這個問題的。
三者差別
? ? ? ? ??軟件架構(gòu)是指軟件架構(gòu)師在制作軟件的時候、對軟件規(guī)劃的一種藍圖、通常是分層、畫出各個組件的關(guān)系。
? ? ? ? ??軟件框架是指在特定的領(lǐng)域內(nèi)、已經(jīng)有人寫好的框架(有代碼)、框架有局限性、僅僅限特定領(lǐng)域。
? ? ? ? ??設(shè)計模式是指針對一些編程實際的問題所提出的抽象解決方式、用類與類之間的關(guān)系相互作用、達到目的。
三層架構(gòu)與MVC的差別
? ? ? ? ??根本差別是三成是機構(gòu)而MVC是框架、MVC是應(yīng)用與Web別人已經(jīng)寫好的代碼、如ASP.NET就能夠直接點擊MVC、會自己主動生成框架代碼、而三層是做軟件自己劃分的、是一種制作軟件的思想。
有圖有真相、以下是ASP.NET的建項目
? ? ? ? ? ? ?
? ? ? ? ? ? ?
他倆的共同點就是都分成了三個、折讓人們非常easy誤解
? ? ? ? ??并且三層的UI層與MVC的M和C、功能非常像
? ? ? ? ??而MVC的V和BLL和DLL、功能非常像
? ? ? ? ??如圖
? ? ? ? ??盡管相似、可是從根本上就不是一個東西呦!由于架構(gòu)是一種做軟件的思想、而框架是人們已經(jīng)對特定領(lǐng)域軟件的共同特性、所編寫好的代碼成品。
所以
? ? ? ? ??軟件架構(gòu)>軟件框架>設(shè)計模式
? ? ? ? ??當(dāng)然從解耦和的觀點來看、這三個都是以解耦為目的、也是面向?qū)ο蟆⒆龀龈玫某绦颉⑺允裁匆粯硬灰粯拥摹⑹强丛谀膫€層面看
如:
你買了兩個iPhone6手機是一樣嗎?
? ? ? ? ? 從型號來看、都是蘋果6手機、是一樣的
? ? ? ? ? 從安裝軟件上比可能就不一樣了
? ? ? ? ? ?所以、有人說MVC和三成架構(gòu)是一個東西、沒錯、都是為了解耦和、有人說MVC和三層架構(gòu)不是一個東西、也對、MVC有實際的框架代碼、三層架構(gòu)是做軟件的一種思想、就好像設(shè)計模式一樣、三層是做軟件的思想、設(shè)計模式是解決這個問題的思想。
? ? ? ? ? ?正所謂:橫看成嶺側(cè)成峰、遠(yuǎn)近高低各不同、事事無絕對、多學(xué)多理解、今天寫的挺濃縮的、希望能幫到大家、也希望大家看到也能多給我提提建議、謝謝!
———————————————想跟503說再見……———————————————
——————————————chenchen———————————————
轉(zhuǎn)載于:https://www.cnblogs.com/gcczhongduan/p/4362105.html
總結(jié)
以上是生活随笔為你收集整理的架构(三层架构)、框架(MVC)、设计模式三者异同点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 4.4及以上系统下应用的
- 下一篇: MVC小例子