架构设计学习资料(持续更新)

本文汇总了架构设计的学习资料,包括图书、视频和多种架构模式,如分层架构、多层模式、管道与过滤器模式、客户端/服务器模式、MVC模式、事件驱动架构和微服务架构。详细介绍了各种模式的优缺点及适用场景,为软件架构设计提供了丰富的参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

架构设计学习资料(持续更新)

图书

  • 《Software Architecture Patterns》Mark Richards
  • 《Fundamentals of Software Architecture》Mark Richards, Neal Ford

Video

架构模式

  • Layered Architecture 分层架构模式
  • Multi-Tier 多层模式
  • Pipe and Filter 管道与过滤器模式
  • Client Server 客户端/服务器架构模式
  • Model View Controller MVC模式
  • Event Driven Architecture 事件驱动架构模式
  • Microservices Architecture 微服务架构模式

Layered Architecture 分层架构模式

模式:

  • Presentation Layer
  • Business Layer
  • Persistence Layer
  • Database Layer

在DDD分层架构中,将Business Layer再分为:

  • Application Service Layer 业务服务层
  • Domain Service Layer 领域服务层

优点:

  • 容易理解,被广泛使用
  • 层与层之间相互解耦,可以独立演进

缺点:

  • 分层导致性能损失

适用场景:

  • 小型、简单的应用程序或网站
  • 快速开发

Multi-Tier 多层模式

模式:

  • 和分层架构模式类似

优点:

  • 和分层架构一致

缺点:

  • 前期成本较大
  • 复杂

适用场景:

  • 分布式系统

Pipe and Filter 管道与过滤器模式

模式:

  • Input:输入
  • Process:处理过程
  • Output:输入

处理过程的过滤器包括:

  • Producer (source): 流程的起点
  • Transformer (map):数据转换
  • Tester (reduce):测试
  • Consumer (sink):终点

优点:

  • 处理过程的环节可重用,松耦合

缺点:

  • 处理过程环节过多时,会增加复杂性,并降低性能

适用场景:

  • 简单单向处理的任务 (比如CI/CD流水线、函数计算、网关Filter,数据预处理等)

Client Server 客户端/服务器架构模式

模式:

  • 客户端向服务器发送请求,然后等待回复。
  • 服务器接收客户端的请求并向其发送回复。

优点:

  • 简单,广泛使用
  • “拉”式架构

缺点:

  • 服务器可能是性能瓶颈和单点故障 (可通过负载均衡和集群解决)
  • 不适合“推”式架构

适用场景:

  • Web应用

MVC模式

模式:

  • Model: 模型,包含应用的数据
  • View:视图,展示数据,并与用户交互
  • Controller:控制器,协调模型和视图。

优点:

  • 简单,广泛使用
  • 现代的MVC模式已经和前后端分离模式结合使用

缺点:

  • 依赖于特定MVC开发框架

适用场景:

  • Web应用

MVC, MVP and MVVM

MVC MVP MVVM
组件 Model, View and Controller Model, View and Presenter Model, View and View Model
特点 MVC 设计模式将应用程序分为三个主要方面:模型、视图和控制器。 MVP 模式类似于 MVC 模式。它源自 MVC 模式,其中控制器被演示者取代。这种模式将应用程序分为三个主要方面:模型、视图和演示者。 MVVM 模式支持 View 和 View-Model 之间的双向数据绑定。这允许将视图模型状态内的更改自动传播到视图。通常,View-Model 使用观察者模式将 View-Model 中的更改通知给模型。j
入口 Controller View View
Model 模型是指需要在视图中显示的数据。模型表示描述业务逻辑(业务模型和数据模型)的类的集合。它还定义了数据方式的业务规则,即如何更改和操作数据。 模型表示一组描述业务逻辑和数据的类。它还定义了数据的业务规则,意味着如何更改和操作数据。 MVVM 中使用的模型类似于 MVC 中使用的模型,由运行软件所需的基本数据组成。
View 视图代表 UI 组件,如 XML、HTML 等。视图显示从控制器接收到的数据作为结果。在 MVC 模式中,View 监视模型的任何状态变化并显示更新的模型。模型和视图使用观察者模式相互交互。 View 是一个直接与用户交互的组件,如 XML、Activity、Fragment。它不包含任何实现的逻辑。 View 是用户和设计模式之间的图形界面,类似于 MVC 中的界面。 它显示处理数据的输出。
X 控制器负责处理传入的请求。它通过 Model 处理用户的数据,并将结果传回给 View。它通常充当视图和模型之间的中介。 Presenter 通过 View 接收用户的输入,然后在 Model 的帮助下处理用户的数据,并将结果传回给 View。 Presenter 通过接口与视图通信。接口在presenter 类中定义,它将所需的数据传递给它。活动/片段或任何其他视图组件实现此接口并以他们想要的方式呈现数据。 视图模型负责公开方法、命令和其他有助于维护视图状态、操作模型作为视图操作的结果以及在视图本身中触发事件的属性。 View 有对 View-Model 的引用,但 View-Model 没有关于 View 的信息。 View 和 View-Model 之间是多对一的关系,意味着多个 View 可以映射到一个 View-Model。它完全独立于视图。
视图与视图模型之间的双向数据绑定或双向数据绑定可确保视图模型中的模型和属性与视图同步。

References:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值