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