iT邦幫忙

2025 iThome 鐵人賽

DAY 16
0
Mobile Development

Android 開發者養成計畫:從程式邏輯到作品集實戰系列 第 16

Day 16- 程式碼大掃除!程式架構簡介 (MVC)

  • 分享至 

  • xImage
  •  

在第十五天的挑戰中,成功地讓 App 擁有了「任意門」的功能,可以在不同頁面之間跳轉並傳遞資料。

但你可能會發現一個問題:我們前面寫的程式,所有的邏輯(運算、資料處理)和畫面操作,都混在 MainActivity.java 裡面。當 App 越來越複雜時,這個檔案會變得又臭又長,難以閱讀和修改。

這時,我們就需要一個 App 的「房屋設計圖」,也就是今天的重點:程式碼架構

什麼是程式碼架構?

  • 簡單比喻:程式碼架構就像是 App 的 「房屋設計圖」
    • 你可以告訴 App:「我打算將這個房間(程式碼)分成三個功能區:客廳、臥室、廚房。」
    • 這樣,客廳(處理畫面)的東西就不會跑到臥室(處理資料)裡,每個區域各司其職,房子就會井然有序。

程式碼架構的目的,就是為了讓程式碼變得更清晰、更有條理、更方便維護。今天,我們要介紹最基礎的架構模式:MVC

MVC 模式:把程式碼分成三個角色

MVC 是 Model-View-Controller 的縮寫。它將你的 App 程式碼分成三個角色:

1. View (視圖):App 的「外觀」

  • 簡單比喻:就像房子的 「裝潢」
  • 職責
    • 只負責顯示畫面和接收使用者輸入。
    • 它是一個「笨」角色,自己不會做任何運算或資料處理。
    • 範例activity_main.xml 檔案,或程式碼中用來控制 TextViewButton 的部分。

2. Model (模型):App 的「材料庫」

  • 簡單比喻:就像房子的 「材料庫」
  • 職責
    • 只負責處理資料和業務邏輯。
    • 範例:處理資料儲存、網路請求、或我們之前寫的羅馬數字轉換的邏輯。

3. Controller (控制器):App 的「總管」

  • 簡單比喻:就像房子的 「總管」
  • 職責
    • 扮演 ViewModel 之間的橋樑。
    • 接收來自 View 的使用者輸入,然後告訴 Model:「使用者想做這件事,請幫我處理。」
    • Model 處理完資料後,再告訴 View:「資料處理好了,請更新你的畫面。」
    • 範例:我們之前在 MainActivity.java 裡,處理按鈕點擊事件並呼叫邏輯的部分,就扮演了 Controller 的角色。

MVC 運作流程

  1. 使用者View 上點擊按鈕。
  2. View 通知 Controller:「使用者點擊了按鈕!」
  3. Controller 告訴 Model:「請去處理這筆資料!」
  4. Model 處理完資料後,通知 Controller:「資料處理好了!」
  5. Controller 告訴 View:「資料更新了,請更新畫面!」
  6. View 更新畫面,顯示新的內容給使用者

今日總結

今天我們學會了:

  • 程式碼架構的重要性,以及它如何讓程式更易於維護。
  • 最基礎的 MVC 模式,並了解 ModelViewController 三個角色的職責。
  • 認識到我們在之前的實作中,已經隱約地運用了這種分層概念。

明天,我們要學習一個更現代、更適合 Android 開發的架構模式:MVVM。它解決了 MVC 的一些痛點,是目前最主流的開發模式之一。

明天見!


上一篇
Day15- App 的任意門!頁面切換 (Intent) 與資料傳遞
下一篇
Day17- 更現代的架構!認識 MVVM 模式
系列文
Android 開發者養成計畫:從程式邏輯到作品集實戰22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言