發表文章

目前顯示的是有「設計架構類-MVVM-仔細說」標籤的文章

自救必看三大準則

架構仔細說

圖片
設計程式的架構 實務上,服務的內容和推出的時間點是最核心的考量。 一般會考慮時程,人力,專案的規模,未來需求的變化等等, 以在資源許可的範圍內,規劃合適的架構來進行開發。 如果後續有很多功能要擴充,可以衡量是否要在前期做更有彈性的設計,多投入一些資源開發,節省未來維護的成本。 簡而言之, 應用某種架構來開發程式的目的,是幫助開發者 : 因應未來功能增加或是需求變更,把程式碼控制在較好維護和擴充的範圍。 有許多書在討論架構程式的方法,可以看看 Clean Code 和 Refactor 相關的書。這裡我們先來看看 M-V-X 是一個什麼樣的架構。 M - V - X 的架構 M - V - X 的架構中,把程式分成三個層級,分別有各自的職責。 V:View — 負責定義和顯示使用者介面,並接受使用者的操作。 M:Model — 負責處理和資料有關的事務,包括獲取資料和儲存資料。 X:通常在 View 和 Model 間扮演橋樑的角色。 簡單描述流程: 由 View 提供畫面,當使用者在畫面上操作時,View 把事件通知 X。由 X 調用 Model 相對應的方法。Model 會從網路或本地端的儲存空間來取得資料。當 Model 取回資料時,再通知 X 或是 View 更新畫面。如下圖: 左邊是 User,中間是 M-V-X 模式設計的應用程式,右邊是儲存資料的伺服器或是資料庫。 這個架構的主要想法,是把程式中不同的功能,合理的切成獨立的單元。這麼做有許多優點: 1. 明確區分職責,M, V, X 各自負責不同的功能 像是 View 和 X 不需要了解 Model 如何取資料,只要透過 Model 提供的方法,就可以透過 Model 拿到需要的資料。 2. 解耦合,避免不必要的依賴性 像是 Model 對 View 或是 X 沒有依賴性,所有元件都可以請 Model 拿資料。 3. 獨立的單元可以重複使用 像是信用卡設定頁面和付款頁面都需要使用者的信用卡資料,可使用相同 Model 的方法來取得。 4. 易於維護,可單獨修改 M, V, X 任一層 像是後端調整欄位時,可以只改 Model。調整 UI 時,只需要修改 View。 5. 易於測試 解耦合...