系统架构设计师备考第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:管理用户操作流程,支持中断恢复。
相关推荐
黄俊懿2 小时前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
法号:行颠5 小时前
Chaos-nano协作式异步操作系统(六):`Chaos-nano` 在手持式 `VOC` 检测设备上的应用
c语言·单片机·嵌入式硬件·mcu·系统架构
CinzWS15 小时前
车规级高可靠性DMA控制器(G-DMA)架构设计--第二章 IP核心架构设计 2.1 顶层系统架构
架构·系统架构·dma
亿坊电商15 小时前
AI数字人交互系统架构全解析:从多模态输入到实时渲染的闭环设计!
人工智能·系统架构·交互
LSL666_16 小时前
8 分层架构核心原则
分层架构
timmy-uav1 天前
BetaFlight代码解析(22)—任务调度器和系统基础架构
架构·系统架构·无人机·飞控·betaflight
武子康1 天前
Java-193 Spymemcached 深入解析:线程模型、Sharding 与序列化实践全拆解
java·开发语言·redis·缓存·系统架构·memcached·guava
粟悟饭&龟波功2 天前
【软考系统架构设计师】四、信息系统基础知识
系统架构·软件工程
hans汉斯2 天前
【软件工程与应用】基于大数据的应急救援云平台构建应用研究
大数据·数据库·人工智能·物联网·系统架构·云计算·汉斯出版社
粟悟饭&龟波功2 天前
【软考系统架构设计师】三、计算机系统基础知识
系统架构·软件工程