框架模式——MVC和MVP

MVC是基础,MVP是变体,下面学习一下这两种架构。

MVC相关介绍

定义

Wikipedia:Model-view-controller(MVC)是一个用于开发用户接口的通用的架构模式,它将应用分为三个相连的部分。这样做的目的是将内部数据和呈现给用户的信息以用户可以接受的方式分离开来,在效率和并行开发允许的情况下分为了三个主要组成部分。

组成部分

From Wikipedia

  • model是模式的核心组成,是与用户接口相独立的应用的动态数据结构,负责管理数据、逻辑和应用规则,接收来自控制器的用户输入。
  • view表示信息的输出,比如图标表格等。
  • controller接收输入并将其转化为模型或视图的指令,处理用户输入并与数据模型对象实现交互。控制器接受输入、选择性的验证并将其将输入传给模型。
    框架模式——MVC和MVP_第1张图片
    From Wikipedia

    这张图片表达的信息是:
    1. 视图被用户看到;
    2. 用户使用控制器;
    3. 控制器操作模型;
    4. 模型更新视图。
      From A Blog
  • 模型:管理应用的行为和数据,相应数据请求(来自视图)和更新状态的指令(来自控制器);
  • 视图:管理作为位图展示到屏幕上的图形和文字输出;
  • 控制器:翻译用户的输入并依照用户的输入操作模型和视图。
    框架模式——MVC和MVP_第2张图片
    Standard MVC

一些关系

依赖关系:视图层和控制层依赖于模型层中的数据,然而对于模型层来说是独立的。
展示层分离:展示层用于内容展示(VC),领域层(Model)包含领域和数据逻辑。展示层依赖于领域层,领域层对展示层一无所知。
观察者同步:当模型属性发生变化时,通过观察者模式推送给所有注册的观察者。通过观察者模式,可以创建一个依赖于同意模型的视图。

MVP相关介绍

定义

From Wikipedia:Model view presenter(MVP)是MVC的变体,大多运用于用户接口中。其中presenter是一个中介的角色,所有的表示逻辑都由presenter完成。

组成部分

  • model是在用户接口之上的定义数据的接口。
  • view是一个展示数据(模型)和规划用户指令的被动接口。
  • presenter是一个在模型和视图之上执行,从来从库(模型)中检索数据并且格式化后在视图上进行显示。
    框架模式——MVC和MVP_第3张图片
    From Wikipedia

你可能感兴趣的:(框架模式——MVC和MVP)