軟件架構和軟件設計、以及MVC

我們在進行軟件開發的時候,以前貌似就是類似於“攤大餅”式的軟件架構。一箇中心,其餘的功能模塊和邏輯代碼就圍繞這個主線程(或者主程序)展開,最終隨着功能的越來越多,程序越來越繁雜,變得難以維護。慢慢的,MVC於是就隨着軟件結構設計的發展應運而生,因此,MVC其實就是軟件架構模式,並非軟件設計模式。

1 . 那麼,軟件架構模式和軟件設計模式到底有什麼不同呢?

其實說白了,軟件架構模式是一種戰略性的軟件模式,是在宏觀層面,而軟件設計模式是一種戰術性的軟件模式,是在微觀層面(或者是代碼層面)。

在進行軟件開發的時候,項目經理需要仔細分析“需求”,根據需求進行提取、求精,加之對於人員的把控等因素 ··· 轉換爲甘特圖,而架構師呢,需要將這些提煉後的需求,轉化爲UML類圖、用例圖等等,然後基於項目的難易程度、擴展性、維護性等,搭建一套軟件架構,例如:MVC模式。

在程序開發人員在進行代碼編寫的時候,基於代碼的耦合性、可修改性、可讀性等,針對某些類的實現,使用比較適合於編程的軟件設計模式。比如:我們經常使用的單例模式、工廠模式等。

因此綜合以上我們可以看出來,軟件架構模式是戰略層面的設計,是通觀全局,爲了項目工程能夠有一個可控的、可靠的、可移植的特性而設計的。而軟件設計模式是戰術層面的設計,如果軟件設計模式設計的不合理,我們尚可及時更替,或者頂多是代碼的耦合性差,可讀性不高,如果架構模式就設計的不合理,推倒重來的成本對於大型軟件軟件系統來說,是很難承受的。

2 . 軟件架構模式之一:MVC

MVC對於我們比較常見了,不管是桌面軟件開發,還是Web系統開發,很多的情況下都使用了MVC模式。那麼MVC究竟是什麼?

M指的是Model(模型),V(視圖),Controller(控制器)。他們所肩負的任務和圖示是:

· 模 型:應用軟件處理數據邏輯的部分

· 視 圖:應用程序中處理數據顯示的部分

· 控 制 器:處理軟件與用戶交互的部分(處理用戶的數據輸入,將獲取到的數據發送到模型)


基本上就是上圖這個樣子,用戶做出“輸入”的指令,控制器獲取指令,發送給模型處理,模型返回一個結果,並依據業務邏輯選擇視圖,通過視圖,將結果反饋給用戶。我們從上邊的示意圖也可以看出,環節與環節之間是獨立的,使得開發人員都可以專注於其中負責的環節,能讓不同的的開發者並行開發擅長的環節,減少不必要的時間。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章