系统架构设计师备考第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:管理用户操作流程,支持中断恢复。
相关推荐
AUVpwoxkW6 小时前
探索自动避障路径选择:Matlab 路径规划算法与仿真实践
系统架构
RockHopper202512 小时前
解读数字化生产运行系统的裁决机制
运维·系统架构·智能制造·isa-95·isa-88
pursue.dreams17 小时前
马斯克开源X推荐算法深度解析:Grok驱动的推荐系统架构
系统架构·开源·推荐算法·x
未来龙皇小蓝19 小时前
Spring内置常见线程池配置及相关概念
java·后端·spring·系统架构
老友@19 小时前
JMeter 在 Linux 环境下进行生产级性能压测的完整实战指南
java·linux·jmeter·性能优化·系统架构·压测·性能瓶颈
卜锦元21 小时前
Mac 上无痛使用 Windows 双系统的完整实践(Intel 或 Apple M芯片都可以)
windows·单片机·macos·金融·系统架构
Coder个人博客1 天前
Linux6.19-ARM64 mm mem_encrypt子模块深入分析
linux·安全·车载系统·系统架构·系统安全·鸿蒙系统·安全架构
aigcapi2 天前
2026年企业级矩阵系统架构评测:矩阵系统哪家好?
线性代数·矩阵·系统架构
十五年专注C++开发2 天前
浅谈C++插件机制的设计要点以及实现方案
开发语言·c++·系统架构·插件机制
犀思云2 天前
出海SaaS全球分布式部署:流量调度的六大核心挑战与破局思考
运维·网络·人工智能·系统架构·机器人