系统架构设计师备考第52天——层次式架构&表现层框架设计

一、层次式架构概述

核心概念
  1. 定义

    • 层次式架构将系统划分为多层结构,每层为上层提供服务,并作为下层的客户端。
    • 典型分层:表现层(UI)中间层(业务逻辑)数据访问层数据层
    • 关键特性:层间通过接口通信,相邻层交互受限(如仅通过协议),支持模块化开发与复用。
  2. 优势与挑战

    • 优势
      • 关注分离:每层专注单一职责(如表现层处理交互,业务层处理逻辑)。
      • 易维护性:修改一层不影响其他层(如更换数据库仅需改动数据访问层)。
      • 复用性:业务逻辑层可被多种前端(Web/移动端)复用。
    • 挑战
      • 污水池反模式:请求流经多层但未处理业务逻辑(如业务层仅调用数据层接口),需控制此类请求比例(建议≤20%)。
      • 系统臃肿:分层过多可能导致性能下降、部署复杂。
典型考题

Q1 :分层架构中"污水池反模式"是什么?如何避免?
A1 :指请求穿透多层却未执行实际业务逻辑。可通过二八原则(控制穿透请求≤20%)或合并冗余层解决。
Q2 :为何分层架构适合传统IT系统?
A2:因其贴近企业组织结构(如前端/后端团队分离),且通过抽象层降低耦合度。


二、 表现层框架设计

1 表现层设计模式
模式 核心思想 组件交互 优点 适用场景
MVC 分离视图(View)、模型(Model)、控制器(Controller) View接收输入→Controller调用Model→Model处理数据→Controller更新View 支持多视图扩展;业务逻辑与UI解耦 Java EE Web应用
MVP View与Model完全隔离,通过Presenter中介 View将用户操作转发给Presenter→Presenter调用Model→结果通过接口返回View 视图与模型彻底解耦;Presenter可复用;便于单元测试 Android应用开发
MVVM View与Model双向绑定,ViewModel为桥梁 View绑定ViewModel属性→数据变更自动同步视图;用户操作通过ViewModel更新Model 减少模板代码;数据驱动视图更新;适合频繁数据操作场景 数据密集型应用(如Vue/React)

关键区别

  • MVC:View可直接读取Model(如JSP直接调用JavaBean)。
  • MVP/MVVM:View与Model严格隔离,通过中间层(Presenter/ViewModel)通信。

考题示例
Q :MVVM中ViewModel的作用是什么?
A:实现View与Model的双向绑定,处理数据状态转换与事件传递,解耦视图与业务逻辑。


2 表现层中UIP设计思想

UIP(用户界面流程框架) 是微软提出的分离UI逻辑与业务逻辑的解决方案:

  1. 分层结构
    • UI组件:用户直接交互的界面(如窗体控件)。
    • UIP组件:幕后协调工作流、导航、状态管理(如记录用户任务进度)。
  2. 核心功能
    • 管理跨界面的信息流与事务状态。
    • 将用户操作流程从具体设备/技术中抽象出来(如PC与移动端共享同一流程逻辑)。
  3. 价值
    • 支持任务中断恢复(如保存草稿继续操作)。
    • 提升UI代码复用性(业务逻辑不变时,可替换UI技术栈)。

考点 :UIP通过分离界面展示流程控制,解决传统UI代码与业务逻辑混杂的问题。


3 表现层动态生成设计思想

基于XML的界面管理技术实现动态UI生成:

  1. 三大模块
    • 界面配置:静态定义初始界面(如控件位置、类型)。
    • 界面定制:运行时动态修改界面属性(如调整工具栏图标)。
    • 界面生成:解析XML配置 + 数据库数据 → 实时渲染界面。
  2. 技术实现
    • 用XML描述控件树(如<component type="button" constraint="17,22,78,20">)。
    • 解析器根据平台转换XML(如Web生成HTML,桌面应用生成JFrame)。
  3. 优势
    • UI与业务逻辑分离:修改界面只需调整XML,无需改动代码。
    • 多平台适配:同一份XML配置可生成不同技术栈的UI(如WebForm/WinForm)。

考题
Q :XML如何统一WebForm与WinForm的外观?
A:将GUI描述为XML数据,通过不同解析器转换为目标平台的UI组件(如HTML标签或桌面控件)。


本章重点考点总结

  1. 分层架构设计原则:关注分离、层间接口约束、避免污水池反模式。
  2. 表现层模式对比:MVC、MVP、MVVM的交互差异与适用场景。
  3. UIP核心价值:工作流与状态管理的抽象化。
  4. 动态UI生成:XML配置 + 解析器实现多平台适配。

典型综合题

某系统需支持Web/桌面双端,且允许用户自定义界面。请设计表现层方案。

  1. 采用MVVM模式:ViewModel统一业务逻辑,View按平台实现。
  2. XML界面管理:用XML定义控件布局,通过解析器生成Web/桌面UI。
  3. 集成UIP:管理用户操作流程,支持中断恢复。
相关推荐
武子康11 小时前
Java-160 MongoDB副本集部署实战 单机三实例/多机同法 10 分钟起集群 + 选举/读写/回滚全流程
java·数据库·sql·mongodb·性能优化·系统架构·nosql
Bella的成长园地2 天前
高级软考-系统架构设计师知识点4
系统架构·高级软考
Bella的成长园地2 天前
高级软考-系统架构设计师知识点1
系统架构·高级软考
武子康3 天前
Java-155 MongoDB Spring Boot 连接实战 | Template vs Repository(含索引与常见坑)
java·数据库·spring boot·后端·mongodb·系统架构·nosql
武子康3 天前
Java-157 MongoDB 存储引擎 WiredTiger vs InMemory:何时用、怎么配、如何验证 mongod.conf
java·数据库·sql·mongodb·性能优化·系统架构·nosql
kkkkk0211064 天前
软考高级-系统架构设计师案例专题三:系统开发基础
笔记·系统架构
"sudo4 天前
【2025-系统规划与管理师】第十章:云原生系统规划
系统架构
qqxhb4 天前
系统架构设计师备考第48天——机器人&边缘计算
系统架构·机器人·边缘计算·边云协同·资源数据智能协同·联接约束分布性·数据第一入口
qqxhb5 天前
系统架构设计师备考第49天——数字孪生体&云计算&大数据技术
大数据·系统架构·云计算·saas·paas·iaas·数字孪生体