抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

层次式架构设计

层次式体系结构是一种常见的架构设计方法,它将系统组成为一个层次结构,每一层为上层服务,并作为下层的客户。
大部分应用会分成:

  • 表现层(展示层)
  • 中间层(业务层)
  • 访问层(持久层)
  • 数据层

分层架构设计的核心和特点:关注点分离

注意点:

  • 容易成为污水池反模式(Architecture Sinkhole Anti-pattern):请求流简单地穿过几个层,每个层里面基本没有做任何业务逻辑,或者做了很少的业务逻辑
  • 分层架构可能会让应用变得庞大

表现层设计

MVC模式

  • 模型(Model):应用主体部分,业务数据和业务逻辑
  • 控制器(Controller):接受用户的输入,并调用MV去完成用户的需求
  • 视图(View):用户交互界面

注意:View和Model之间可以直接交互

优点:

  • 允许多种用户界面的扩展
  • 易于维护
  • 易于构建强大的用户界面
  • 增加应用的可扩展性、强壮性和灵活性

MVP模式

  • 模型(Model):提供数据
  • 视图(View):负责显示
  • Presenter/Controller:负责逻辑的处理

优点:

  • 模型与视图完全分离,可以修改视图而不影响模型
  • 所有交互都发生在Presenter,模型使用更高效
  • 一个Presenter可用于多个视图,而不需要改变Presenter的逻辑
  • 如果把逻辑放在Presenter中,可以脱离用户接口来测试这些逻辑(单元测试)

MVVM模式

  • 模型(Model)
  • 视图(View)
  • 视图模型(ViewModel)

Model与ViewModel 双向绑定
View与ViewModel 双向绑定

中间层框架设计

业务逻辑层框架:

  • Domain Model:仅仅包含业务相关的属性的领域层业务对象
  • Service:业务过程实现的组成部分,是应用程序的不同功能单元
  • Control:服务控制器,是服务之间的纽带,实现不同服务之间的切换

数据访问层设计

数据访问模式:

  • 在线访问:占用数据库连接实时访问
  • Data Access Object:DAO是标准J2EE设计模式,将底层数据访问操作与高层业务逻辑分离
  • Data Transfer Object:DTO属于EJB设计模式之一,用于跨越不同进程或网络边界传输数据的容器或对象
  • 离线数据模式:以数据为中心,获取数据后按照某种预定义的结构存放在系统中,成为应用的中心
  • 对象/关系映射ORM:将关系数据库中的记录转换成代码中操作的对象

其他:

  • 事务处理设计ACID
  • 连接池管理

评论