写点什么

架构风格和架构模式速览

  • 2009-02-15
  • 本文字数:1080 字

    阅读完需:约 4 分钟

应用架构指南 2.0(微软模式和实践)的第 6 章讨论了诸如消息总线、分层架构、SOA 之类的架构风格。除了这些风格,还有很多架构模式,比如插件、点对点、发布 - 订阅。有些作者对架构风格、模式和隐喻进行了区分。

什么是架构风格呢?根据应用架构指南所说,架构风格指:

一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。

指南的作者列出了一系列架构风格:

架构风格 描述 客户端 - 服务器 将系统分为两个应用,其中客户端向服务器发送服务请求。 基于组件的架构 把应用设计分解为可重用的功能、逻辑组件,这些组件的位置相互透明,只暴露明确定义的通信接口。 分层架构 把应用的关注点分割为堆栈组(层)。 消息总线 指接收、发送消息的软件系统,消息基于一组已知格式,以便系统无需知道实际接收者就能互相通信。 N 层 / 三层架构 用与分层风格差不多一样的方式将功能划分为独立的部分,每个部分是一个层,处于完全独立的计算机上。 面向对象 该架构风格是将应用或系统任务分割成单独、可重用、可自给的对象,每个对象包含数据,以及与对象相关的行为。 分离表现层 将处理用户界面的逻辑从用户界面(UI)视图和用户操作的数据中分离出来。 面向服务架构(SOA) 是指那些利用契约和消息将功能暴露为服务、消费功能服务的应用。

这些架构风格分别适用于特定领域:

分类 架构风格 通信 SOA,消息总线,管道和过滤器 部署 客户端 / 服务器,三层架构,N 层架构 领域 领域模型,网关 交互 分离表现层 结构 基于组件的架构,面向对象,分层架构

J.D. Meier 从《企业架构实用指南》(由 James McGovern、Scott W. Ambler、Michael E. Stevens、James Linn、Vikas Sharan、Elias K. Jo 编著)一书中总结了几个要点,指出了架构风格和架构模式之间的细微差别

  • 架构风格是系统主要的、组织性的设计。
  • 架构模式从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案。
  • 系统隐喻则更为概念化,比起软件工程概念,它更多地涉及现实世界的概念。

David Calvert 在 1996 年给出了一份架构风格 / 模式的部分清单

  • 数据流系统——批处理,管道 - 过滤器。
  • 调用 - 返回系统——主程序和子程序,面向对象系统,分层。
  • 独立组件——通信过程,事件系统。
  • 虚拟机——解释器,基于规则的系统。
  • 以数据为中心的系统(仓库)——数据库,超文本系统,黑板。

其它比较现代的风格 / 模式还有:插件点对点无共享架构表述性状态转移(REST)、前端- 后端。在维基百科上有更为完整的列表

查看英文原文: A Quick Look at Architectural Styles and Patterns

2009-02-15 18:528805
用户头像

发布了 151 篇内容, 共 64.8 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

语音聊天室APP运营第一天:打造交互式社交体验

山东布谷科技胡月

语音直播 语音聊天室开发 语聊平台 语音派对房

十分钟教你在 k8s 中部署一个前后端应用

不在线第一只蜗牛

Kubernetes 容器 云原生 k8s

最好用的延时摄影制作软件LRTimelapse Pro 5下载安装 带LRTimelapse汉化补丁

南屿

Mac软件 延迟摄影 LRTimelapse Pro 5破解版 LRTimelapse中文 电影抗闪烁

Head First Java(第二版·中文版)PDF

程序员李木子

【思考-责任与决策】

虚实的星空

日常思考

专业的字体设计软件 FontLab

Rose

Mac软件:使用【Path Finder】来管理你的文件

Rose

indesign2024打开后进不了页面

Rose

SRM源码供应商招标采购管理系统

金陵老街

源码 Vue Java' spring-boot SRM系统

【网易智企】《MCtalk·CEO对话》正式上线!首期对话高成资本

网易云信

人工智能 SaaS AIGC

免费下载高质量PPT模板,这12个优质模板网站值得推荐!

彭宏豪95

效率工具 PPT 在线白板 PPT模板 办公软件

半小时实现GPT纯血鸿蒙版

不在线第一只蜗牛

人工智能 AI技术 鸿蒙开发 GPT

谷歌推广该选择SEO还是Ads?谷歌技巧分享及实战

九凌网络

Substance 3D Designer最新图文安装教程 附Ds激活补丁

Rose

索尼电视投屏软件就用Mirror for Sony TV for mac

南屿

Mac软件 索尼电视 投屏

2024-01-13:用go语言,现在有一个打怪类型的游戏,这个游戏是这样的,你有n个技能, 每一个技能会有一个伤害, 同时若怪物小于等于一定的血量,则该技能可能造成双倍伤害, 每一个技能最多只能释放

福大大架构师每日一题

福大大架构师每日一题

Mac用户最爱的应用:Magnet 窗口辅助管理工具 分屏工作更高效!

南屿

mac窗口管理工具 Mac分屏 magnet pro 中文版 magnet pro 破解版

【思考-衡量成员在团队的价值】

虚实的星空

团队 日常思考

Effective Java中文版(第3版)PDF

程序员李木子

Mac财务管理软件Money Pro - 可同步账单、预算和账户

Rose

授权的艺术

俞凡

管理

PlistEdit Pro for Mac(Plist编辑器) v1.9.7免激活版

南屿

Finder增强神器XtraFinder for Mac中文注册版

南屿

Mac破解软件 访达 Finder增强 XtraFinder Mac版 XtraFinder注册码

【SpringBoot实战专题】「开发实战系列」全方位攻克你的技术盲区之Spring定义Jackson转换Null的方法和实现案例

码界西柚

Java spring springboot 后端技术、 2024年第八篇文章

安全易用的广告拦截器:AdGuard for Mac 中文激活版 兼容M1/M2

南屿

AdGuard Mac版 Mac广告拦截工具 苹果软件下载站

苹果电脑占用内存多?DaisyDisk for Mac快速释放存储空间

南屿

mac软件下载 DaisyDisk Mac版下载 清理磁盘软件 Mac磁盘优化

架构风格和架构模式速览_方法论_Abel Avram_InfoQ精选文章