iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 16
1
Software Development

保持前進、持續優化程式碼內涵系列 第 16

16. 常見軟體架構之一 - MVC (待補完)

  • 分享至 

  • xImage
  •  

筆者OS: 雖然己經欠了六篇文章的內容,還是先趕完這篇文章,再回補之前的內容。


1. 關注點分離

關注點分離(Separation of concerns,SoC)是對只與「特定概念、目標」(關注點)相關聯的軟體組成部分進行「標識、封裝和操縱」的能力,即標識、封裝和操縱關注點的能力。是處理複雜性的一個原則。
由於關注點混雜在一起會導致複雜性大大增加,所以能夠把不同的關注點分離開來,分別處理就是處理複雜性的一個原則,一種方法。

上面是 wiki 對關注點分離的說明,用筆者的話來說……

關注點分離,就是將交錯著各種目的的複雜程式碼,依程式碼的概念、目的,進行分類、篩檢、整理。讓高複雜性程式碼切割、轉換為簡潔易懂的單純性程式碼。

其好處是將特定領域的程式碼與商業邏輯切割,使其獨立處理。進一步的,讓程式碼本身的目的單純化。這個動作,筆者認為跟 SOLID 中的 SRP 有異曲同工之妙。

同時,關注點分離,不僅讓協作程式開發的可能性大大的提升,也讓軟體的維持與改版成本變的更低。

2. Model-View-Contorller, MVC

Model–view–controller (MVC) is a software architectural pattern that divides a given application into three interconnected parts. This is done to separate internal representations of information from the ways information is presented to, and accepted from, the user. The MVC design pattern decouples these major components allowing for efficient code reuse and parallel development.

MVC示意圖

2.1 Model

負責處理與控制,程式使用的所有資料。當然,也可以將其視為資料存放區(data domain)

2.2 View

跟軟體使用者直接接觸的部份。使用者的操作,軟體畫面的呈現,都是歸屬在 view 的範圍。

2.3 Controller

3. 後言

所有的軟體架構,都是為了解決特定問題或情境的方案。 當問題或情境有所變動時,軟體架構必然也會有所變異。

對筆者而言,MVC 就是基於 SRP 延伸出來的框架,但 MVC 只是一個概念與原則,並非絕對或一成不變的。在實務上,一定會因應實際需求,而有所調整。所以才會從 MVC 的概念,衍伸出 MVVM、MVP 的軟體架構。

4. 推薦

4.1 文章


上一篇
15. 單元測試衍生的題外話—技術債 (待補完)
下一篇
17. 常見軟體架構之二 - MVVM (待補完)
系列文
保持前進、持續優化程式碼內涵24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言