侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

简述MVC架构及其各层职责

2025-12-11 / 0 评论 / 4 阅读

题目

简述MVC架构及其各层职责

信息

  • 类型:问答
  • 难度:⭐

考点

MVC架构,分层职责,移动端架构基础

快速回答

MVC架构将移动应用分为三个核心组件:

  • Model(模型):管理数据和业务逻辑
  • View(视图):处理UI展示和用户交互
  • Controller(控制器):协调Model和View的交互
## 解析

原理说明

MVC(Model-View-Controller)是一种解耦UI、业务逻辑和数据的架构模式:

  • 单向数据流:用户操作 → View通知Controller → Controller更新Model → Model通知View刷新
  • 职责分离:各层独立变化,提高可维护性

代码示例(Android伪代码)

// Model:数据管理
class UserModel {
    String name;
    void saveData(String name) { /* 存储逻辑 */ }
}

// View:UI展示
class ProfileActivity {
    TextView nameView;
    void updateUI(String name) { nameView.setText(name); }
}

// Controller:协调交互
class UserController {
    UserModel model;
    ProfileActivity view;

    void onSaveButtonClick(String input) {
        model.saveData(input);  // 更新Model
        view.updateUI(input);   // 更新View
    }
}

各层详细职责

组件职责典型代码
Model数据存取、业务规则、网络请求Room/SQLite操作、API调用
ViewUI渲染、用户输入响应XML布局、Activity/Fragment UI逻辑
Controller接收用户事件、调用Model、更新ViewActivity事件处理、ViewModel逻辑

最佳实践

  • 禁止View直接操作Model,必须通过Controller
  • Model层保持平台无关(可独立于Android/iOS)
  • 复杂场景中Controller可拆分为Presenter/ViewModel

常见错误

  • Massive ViewController:在Controller中堆积过多逻辑(应拆分到Model)
  • View-Model耦合:View直接读写Model数据(破坏分层原则)
  • 循环依赖:Model持有View引用(导致内存泄漏)

扩展知识

  • MVVM:用Data Binding自动同步View和Model,替代Controller的手动更新
  • MVP:通过接口解耦View和Presenter,便于单元测试
  • 适用场景:MVC适合中小型应用,MVVM/MVP更适合复杂交互场景