软考 系统架构设计师 第十三章 层次式架构设计理论与实践(二)- 表现层框架设计
2026-10-18 20:31:38
0次

关注「有鱼软考」,系统架构设计师备考干货持续更新。表现层是案例题常客,MVC / MVP / MVVM 三者区别、以及"XML 描述 + 解析器"的多端统一思想,是本节必须拿下的考点。

一、本节一句话

表现层框架设计 = MVC 系模式(MVC / MVP / MVVM 逐层解耦视图与模型)+ XML 描述(一套 GUI 描述多端统一、动态生成)+ UIP(微软 UI 流程框架管导航与工作流)

二、知识框架

  • ▪▪ ▪ ▪ • 表现层设计模式:MVC(View 可直读 Model)/ MVP(View 经 Presenter)/ MVVM(ViewModel 双向绑定)
  • ▪▪ ▪ ▪ • XML 统一描述 GUI:控件即结点、属性即 attribute,解析器按表现技术生成实例(策略模式)
  • ▪▪ ▪ ▪ • UIP 设计思想:UIC(用户可见)+ UIP(协调导航/工作流,用户不可见)
  • ▪▪ ▪ ▪ • 基于 XML 的界面动态生成:界面配置 / 界面定制 / 界面动态生成

三、核心内容

表现层设计模式

1. MVC 模式

  • ▪▪ ▪ ▪ • Model(模型) :应用程序主体,表示业务数据和业务逻辑;一个模型能为多个视图提供数据,提高可重用性。
  • ▪▪ ▪ ▪ • View(视图) :用户看到并交互的界面,显示数据、接收输入,但 不进行实际业务处理 ;只查模型状态、不改模型,并接收模型更新事件同步界面。
  • ▪▪ ▪ ▪ • Controller(控制器) :接受用户输入并调用模型与视图,是用户界面与 Model 的接口;解释视图输入为系统对象、识别用户动作为模型方法调用、处理模型事件并选视图反馈。
  • ▪▪ ▪ ▪ • 协作流程 :控制器接收请求 → 决定调用哪个模型 → 模型处理业务并返回数据 → 控制器选相应视图格式化数据并呈现。
  • ▪▪ ▪ ▪ • 优点 :①允许多种用户界面扩展(增新类型界面只改 View + Controller,模型不动);②易于维护(保持公共接口,旧版控制器/视图可继续用);③功能强大的用户界面(界面与模型方法组合,清晰友好)。
  • ▪▪ ▪ ▪ • 定位 :MVC 是构建应用框架的较好模式,目前较先进的 Web 应用框架都基于 MVC。

2. MVP 模式

  • ▪▪ ▪ ▪ • 与 MVC 的区别 :MVP(Model-View-Presenter)基本思想相通,但 MVC 允许 View 与 Model 直接"交流",而 MVP 中 View 不直接使用 Model,须经 Presenter 通信 ;所有交互发生在 Presenter 内部。
  • ▪▪ ▪ ▪ • 进一步解耦 :Presenter 依赖的是抽象化 View(即 View 实现的接口 IView ),使定义在 Presenter 中的 UI 处理逻辑易于测试——只需一个实现 IView 的 View 即可测试 Presenter。
  • ▪▪ ▪ ▪ • 优点 :①模型与视图完全分离,改视图不影响模型;②更高效使用模型(交互集中一处);③一个 Presenter 可用于多个视图、逻辑不变(视图变化比模型频繁,很实用);④逻辑放 Presenter 可脱离用户接口做单元测试。
  • ▪▪ ▪ ▪ • 应用 :目前更多地用在 Android 开发中。

3. MVVM 模式

  • ▪▪ ▪ ▪ • 核心 :MVVM(Model-View-ViewModel)为解决 MVP 中 UI 种类变多、接口也增加的问题而提出。 ViewModel 是核心 ,通过 DataBinding 实现 View 与 Model 双向绑定 ,内容包括数据状态处理、数据绑定及数据转换。
  • ▪▪ ▪ ▪ • 双向绑定机制 :View 与 Model 不能直接通信,只能经 ViewModel。ViewModel 通常实现观察者:数据变化 → VM 监听并通知视图更新;用户操作视图 → VM 监听并通知数据改动,形成双向绑定。
  • ▪▪ ▪ ▪ • 适用与注意 :更适用于数据驱动、数据操作频繁的场景;但双向绑定导致问题难定位来源(可能数据问题,也可能视图属性修改)。若采用 MVVM,建议用官方架构组件 ViewModel、LiveData 实现。

用 XML 设计表现层,统一 Web Form 与 Windows Form

  • ▪▪ ▪ ▪ • 背景 :XML 标记用于定义数据结构与类型(不同于 HTML 控制显示);表现层仍由 HTML 唱主角,但胖客户端(Windows Form)有回归趋势,两种技术长期并存,厂商要求既支持胖客户端又支持 Web。
  • ▪▪ ▪ ▪ • 思路 :把 GUI 用标准 XML 描述,不同表现形式提供特定转换器。GUI 主要由控件组成,控件可看成含位置/类型/绑定事件的数据对象,在 XML 中作为结点,属性作为结点的 attribute;XML 树形结构天然支持控件层次。
  • ▪▪ ▪ ▪ • 描述约定(要点) :用 component 结点表示控件,type 属性区分控件种类(如 panel 表示控件容器、button 表示按钮),constraint 属性记录位置坐标(如 16,22,78,200 表示面板位置);一个容器结点可嵌套子控件结点,从而完整描述整棵 GUI 树。
  • ▪▪ ▪ ▪ • 解析(策略模式) :调用显示 GUI 时不直接调特定表现技术 API,而是装载 XML 配置,由特定解析器解析生成 GUI 实例。例如遇到 button,JFC 解析器给 JLabel 对象,XSLT 解析器给对应的 HTML 字符串,再调 API 添加显示。GUI 开发人员只需维护一套 XML 文件。

表现层中 UIP 设计思想

  • ▪▪ ▪ ▪ • 问题 :用代码管理用户界面(如窗体决定下一窗体)会使代码复杂、难复用维护,且难移植到其他平台;状态存窗体中难恢复,用户中途关闭会丢失状态。
  • ▪▪ ▪ ▪ • UIP(User Interface Process Application Block) :微软社区开源 Application Block,提供扩展框架,简化 UI 与商业逻辑分离,写复杂导航和工作流,可复用、可随应用增加扩展。
  • ▪▪ ▪ ▪ • 两层结构 :① User Interface Components(UIC) = 原表现层,用户看到并交互,取数据返结果;② User Interface Process Components(UIP) = 用户不可见,协调 UI 各部分配合后台活动(导航、工作流控制、状态与视图管理),为 UIC 提供重要支持。
  • ▪▪ ▪ ▪ • UIP 职责 :管理经 UIC 的信息流;管理各事件间事务;响应异常修改用户流程;将概念性交互从设备/实现上分离;保持内部事务关联状态(常持有一个或多个交互事务实体)。

表现层动态生成设计思想

  • ▪▪ ▪ ▪ • 基于 XML 的界面管理三块 (见图 13-6):① 界面配置 (静态定义,读配置文件初始值;可裁剪/重组/扩充功能);② 界面定制 (运行期用户改菜单/工具栏/键盘命令等属性,结束保存);③ 界面动态生成 (运行时由 DOM API 读 XML 表示层信息、数据存取类读库,动态生成界面)。
  • ▪▪ ▪ ▪ • 价值 :实现用户界面描述信息与功能实现代码分离,可针对不同用户需求配置定制,适应一定程度内数据库结构改动,只改 XML 即可移植。

四、关键概念速查表

五、易错·易混

六、章节速记

  • ▪▪ ▪ ▪ • 三句话回顾 :①MVC 三件套:模型/视图/控制器,View 可直读 Model。②MVP/MVVM 进一步解耦视图与模型(Presenter/IView、ViewModel/绑定)。③XML 描述 + 解析器实现多端统一与动态生成。
  • ▪▪ ▪ ▪ • 记忆口诀 :MVC 分三块,MVP 加 Presenter,MVVM 双向绑,XML 一套通多端。
  • ▪▪ ▪ ▪ • 关键词链 :表现层 → MVC → MVP(Presenter/IView) → MVVM(ViewModel/绑定) → XML 描述(策略) → UIP(导航) → 动态生成
  • ▪▪ ▪ ▪ • 自测三问 :①MVC 三者职责?②MVP 与 MVC 最大区别?③MVVM 靠什么双向绑定?
  • ▪▪ ▪ ▪ • 答案 :①Model 业务 / View 界面 / Controller 调度;②View 不能直接用 Model 须经 Presenter;③DataBinding(观察者机制)。

如果本文帮你分清了 MVC / MVP / MVVM,欢迎点赞、收藏、关注「有鱼软考」,下一节进入中间层架构设计。

相关内容

软考高级系规论文经验教训,...
第4章 信息系统规划 1、以组织战略为起点做规划,坚持战略性、整体...
2026-10-18 20:32:02
软考高级:系统规划与管理师...
本文章围绕软考高级系统规划与管理师(系规)2025年下半年起使用的...
2026-10-18 20:32:02
软考系统规划与管理师综合知...
1. 软考系统规划与管理师考试概述 系统规划与管理师作为计算机技术...
2026-10-18 20:32:01
系统架构设计师软考备考全攻...
每年软考报名季,“系统架构设计师”的咨询热度总能排进前三。我被人问...
2026-10-18 20:32:01
软考系统规划与管理师真题解...
1. 软考系统规划与管理师考试概述 系统规划与管理师作为计算机技术...
2026-10-18 20:32:00
软考系规:第11至17章知...
第 11 章 信息系统治理 章节定位 属于高层顶层管理,是 IT ...
2026-10-18 20:32:00

热门资讯

软考高级系统架构设计师备考(七... 软考高级系统架构设计师备考(七):计算机系统基础—校验码 在计算机系统和数据通信系统中,数据在传输或...
系统架构师案例分析经验 案例分析题考试首先要知道以下几点 案例分析题一共5道题,第一题必做,后面4选2. 后面四题中必有一道...
系统架构设计师软考备考全攻略:... 每年软考报名季,“系统架构设计师”的咨询热度总能排进前三。我被人问过最多的一句话是:“这个证书到底值...
软考系统架构设计师 | 系统安... hello~ 这里是软考系统架构师备考笔记。 零信任与安全架构 在传统的企业网络安全建设中,技术团队...
软考 系统架构设计师 第十三章... 关注「有鱼软考」,系统架构设计师备考干货持续更新。第13章是综合知识+案例的高频章,建议先吃透&qu...
【26年下半年-软考系统架构设... 关注零一软考,获取最新的软考信息👇 获取系统架构设计师软考教材核心考点思维导图! 今天给大家带来一篇...
软考备考全指南:中级软件设计师... 最近朋友圈被“赢麻了!软考空前大利好!恭喜所有程序员”这类标题刷屏的时候,我第一反应也是“又来标题党...
软考系统架构设计师 | 软件架... hello~ 这里是软考系统架构师备考笔记。 架构风格怎么选 今天我们来攻克软考系统架构设计师考试中...
软考 系统架构设计师 第十三章... 关注「有鱼软考」,系统架构设计师备考干货持续更新。表现层是案例题常客,MVC / MVP / MVV...
系统架构设计师考试高效备考指南... 快速体验 打开 InsCode(快马)平台 输入框输入如下内容 帮我整理系统架构设计师考试核心知识点...
软考梦工厂

软考梦工厂

扫码关注我们