2014年1月24日 星期五

Week 2、MVC Design Pattern

此心得是我修過2012 POSD的心得,此課程使用的教課書是Design Patterns (GoF),從事資訊領域的人都因該了解的一環。

何謂MVC?

mvc並不是一種新的程式語言,主要是一種軟體架構,分成三大架構ViewControllerModel,講解如下:
  • Model: 負責資料的區域(類別),把資料從資料庫拿出後的暫存地方或者儲存資料的地方。
  • View: 主要負責UI的部分。
  • Controller: 負責把從model拿到的資料給View,view寫入的資料拿取並放回model。

p.s. 想要快速了解MVC主要還是要動手,推薦ASP.NET MVC此程式就一定得需使用MVC開發,雖然開發麻煩不過維護簡單,一旦發生問題可以快速得知責任在誰那。

事前準備

在講Simple Factory Pattern之前,須先了解兩件事,一是物件導向三大特性(封裝、繼承、多型),二是緊耦合&鬆耦合。

耦合是指程式中物件軟體中類別的相依程度,鬆耦合表示物件或類別比此獨立程度高,也表示軟體維護容易。

物件導向三大特性主要就是在降低偶合度,下面我會簡單講解封裝、繼承、多型,若是要深度了解可以參考市面中許多書籍。

假設寫一個簡單的計算系統,下面未用任何物件導向:
上面這樣寫不但偶合度高,未來幾萬行程式維護起來可能光拉捲軸就不用做事了,這時可以使用物件導向的封裝或者是function(一個function最好一個螢幕大小可以看完的約25-30行)。

物件導向三大特性(封裝):
主要就是function抽取並另成立一個class,當需要使用時宣告此class即可使用,如下圖 Operation* op=new Operation()宣告,並利用Operation的function得到結果。

物件導向三大特性(繼承、多型):

何謂Simple Factory Pattern?

簡單說就是上面結合(封裝、繼承、多型)的程式中的判斷式抽取並交給工廠負責,如下圖:


程式如下:
Factory:
main

總結:
1.封裝目的在於把某些部分程式碼抽出,客戶端可透過宣告使用
2.這裡繼承、多型主要在於把不同責任分散到不同類別中
3. Simple Factory Pattern最主要把原本在用戶端的「判斷」與「宣告」交給「工廠」,用戶端只需把「工廠回傳的物件使用即可。
參考:
POSD課程

沒有留言:

張貼留言