层次式架构是一种将软件系统划分为多个层次的体系结构设计模式,其核心思想是"关注分离",通过将系统组织成表现层、业务层(中间层)、数据访问层和数据层的层次结构,使每层只负责本层逻辑,角色和职责明确。这种架构模式通过清晰的层次划分,有效降低了模块间的耦合度,提高了系统的可维护性、可扩展性和代码重用性,特别适用于中大型企业级应用系统开发,如"急救医疗服务平台"等复杂业务系统,能够显著提升开发效率和系统质量。

1. 表现层(Presentation Layer)

  • 核心职责:接收用户请求,处理用户输入输出,控制页面跳转,呈现最终结果信息
  • 实现方式:主要采用MVC、MVP、MVVM等设计模式
  • 关键特点
    • 负责与用户交互
    • 对用户输入进行验证和控制
    • 采用UIP设计思想和XML界面管理技术实现动态生成
    • 例如:在"急救医疗服务平台"项目中,采用MVVM模式实现视图和模型的分离

2. 业务层(中间层/Business Layer)

  • 核心职责:实现系统功能的核心逻辑,处理业务规则和流程
  • 组成内容
    • 业务逻辑层组件(分为接口和实现类)
    • 业务逻辑层工作流(实现多个参与者间按规则传递任务)
    • 业务逻辑层实体(提供对业务数据的状态编程访问)
    • 业务逻辑层框架
  • 关键特点
    • 采用容器形式便于系统功能开发、代码重用和管理
    • 作为表现层和数据访问层之间的桥梁
    • 是系统功能的核心,不直接处理数据存储

3. 数据访问层(Data Access Layer)

  • 核心职责:负责数据的访问和操作,实现与数据层的交互
  • 常见数据访问模式
    • 在线访问
    • Data Access Object (DAO)
    • Data Transfer Object (DTO)
    • 离线数据模式
    • 对象/关系映射(ORM)
  • 关键特点
    • 采用工厂模式进行数据访问
    • 实现事务处理和连接对象管理
    • 通过ORM技术(如Hibernate、Mybatis)实现数据访问的简化
    • 为业务层提供数据操作接口

4. 数据层(Data Layer)

  • 核心职责:负责数据的存储和持久化
  • 常见实现
    • 关系型数据库(如Oracle、MySQL、PostgreSQL)
    • NoSQL数据库
    • 缓存系统(如Redis)
  • 关键特点
    • 提供数据的物理存储
    • 与数据访问层紧密交互
    • 通过数据库设计与类设计的融合方法实现高效数据管理
    • 为数据访问层提供数据源

层次式架构设计要点

  • 关注分离:各层只负责本层逻辑,角色和职责明确
  • 避免污水池反模式:确保每层都有实际业务逻辑,而非简单传递请求
  • 合理分层:根据应用规模确定合适的层次数量,小应用可能合并业务层和数据访问层
  • 性能考虑:分层可能带来性能开销,需合理设计层间接口

层次式架构是软件工程中应用最广泛的架构模式之一,特别适用于中大型企业级应用系统开发,能够有效提高系统的可维护性、可扩展性和代码重用性。

Q:层次式架构 和MVC是一个意思么?

不,层次式架构和MVC不是同一个意思,但MVC是层次式架构的一种具体实现形式。

层次式架构是一种更广泛的架构模式,它将系统划分为多个层次(如表现层、业务层、数据访问层、数据层),各层之间通过明确的接口进行交互。

而MVC(Model-View-Controller)是一种特定的三层架构模式,是层次式架构在用户界面设计中的具体应用:

  • Model(模型层):处理业务逻辑和数据
  • View(视图层):负责用户界面显示
  • Controller(控制器层):处理用户输入和协调Model与View

MVC是一种"将业务逻辑、数据、界面显示分离的方法组织代码"的框架模式,而层次式架构是更通用的架构设计思想,MVC是其在Web应用开发中的一种具体实现。

简单来说,MVC是层次式架构的一种,但层次式架构不一定是MVC(它可以是其他形式的分层,如表现层-业务层-数据访问层-数据层的四层架构)。