---
# System prepended metadata

title: 12th 鐵人賽 Day_04 MVC架構？(2)
tags: [12th 鐵人賽]

---

---
title: 12th 鐵人賽 Day_04 MVC架構？(2)
tags: 12th 鐵人賽
--- 
# 12th 鐵人賽 Day_04 MVC架構？(2)

昨天跟大家說明了MVC架構的部分。
不過到底為什麼大家都說要使用MVC呢？

我們先來講講兩大缺點：
1. MVC架構的專案，很肥大：
因為MVC強調職責分工，所以再開發的過程中會產生很多檔案，這樣會讓專案的檔案數很多。但現在科技太發達，檔案數多或是容量大好像已經無法造成太大的威脅了。

2. 對新手不太友善：
說真的我一開始在學的時候，覺得這裡很複雜，都聽不太懂，開發的時候甚至一直不斷地切換檔案到眼花，一下子Controller，一下子要寫Model的。
但隨著不斷練習，結構就越來越清楚，最後就得心應手了！

接著來說說優點：
我們直接來看看wiki的介紹：
> MVC模式的目的是實現一種動態的程式設計，使後續對程式的修改和擴充簡化，並且使程式某一部分的重複利用成為可能。除此之外，此模式透過對複雜度的簡化，使程式結構更加直覺。
> 

有些人可能看了之後還是不太懂，直接講個例子，MVC架構中，頁面上的資料是統一由Model來存取，當今天客戶變動了資料的結構，我只需要去Model上更改，頁面那些的都不用做太大的更改。

若是像以前大雜燴的寫法，我更動資料結構，我可能需要去修改好幾十個檔案...光想想就是地獄。
所以說：
1. MVC架構對於日後專案的維護十分的友善：
2. 提高了程式碼的可重用性：
多個View可能共用一個Model，同一段程式碼只要寫一次，很DRY[^first]!
[^first]:Don't-repeat-yourself 
3. Controller 的靈活性：
一個Controller可以跟不同Model、View做連結，去更靈活地完成客戶的需求


看完了這些優點，幾乎可以忽視他的缺點了XD!

好的，MVC的部分就到這邊了，更多詳細的分析及介紹可以參考其他人的筆記或著是[wiki](https://zh.wikipedia.org/wiki/MVC)。
我們明天見！

