软件架构(三)名词解释:架构、设计、风格、模式

系列目录 软件架构(一)概览 软件架构(二)编程语言的历史 软件架构(三)名词解释:架构、设计、风格、模式 软件架构(四)单体架构(Monolithic Ar

系列目录

软件架构(一)概览

软件架构(二)编程语言的历史

软件架构(三)名词解释:架构、设计、风格、模式

软件架构(四)单体架构(Monolithic Architecture)

软件架构(五)分层架构

软件架构(六)MVC架构历史

引子

常常,我们会被一堆名字绕晕:架构风格、架构模式、设计风格、设计模式、架构设计。查看维基百科:目前业内也没有明确的理论,但是我们现在可以识别出许多架构模式(Architecture Patterns)或风格(Architecture Styles),它们构成了软件架构师的基本技能。本文就来捋一捋这些词语。

一、名词解释

我们把这几个次拆解开得到4个基础词汇,其中架构和设计是一组,风格和模式是一组。

  • 架构:架构专注于可以被多个设计所利用的抽象
  • 设计:设计是建立特定事物的具体计划。架构也是一种设计。专注于架构的设计。架构设计就是这个意思。这也是为啥架构师很多时候是不需要写代码的。理论这一块玩的透透的。
  • 风格:某一特定应用领域中系统组织方式的惯用模式。事物的代表性元素特性。
  • 模式:指事物的标准样式,是结构主义用语。指用来说明事物结构的主观理性形式

二、概念剖析

  • 1.风格是模式的一种抽象
  • 2.架构是设计的一种抽象

 

如上图所示,风格也是一种模式,架构也是一种设计。架构风格是一种顶级抽象。其次是架构模式,设计模式是最底层实现落地层面的。

  • 架构风格是最高抽象级别的应用设计。
  • 架构模式是实现架构风格的一种方式。
  • 设计风格就是设计中的某些风格,架构风格就是专注于架构设计的风格。
  • 架构设计就是专注于架构的设计。
  • 设计模式是解决局部问题的方法。GOF95的23种设计模式,是最具认可度的。
  

三、举例说明

常见的架构风格:
  • 单体应用Monolithic application
  • 分层Layered
  • 事件驱动Event-driven
  • 发布订阅Publish-subscribe
  • CS架构Client-server
  • 面向服务Service-oriented
常见的架构模式:
  • MVC:常见于后端架构。springbootMVC
  • MVVM:常见于前端架构。例如国内三大框架之一的vue.js
常见的设计风格:
  • 从小(模块\功能)到大(系统)的设计中体现出来的一种style。上面列的架构风格都可以说是设计风格。
常见的架构设计:
  • springCloud架构设计。包含gateway、feign、eureka/nacos、ribbon、hytrix、某DB/缓存等一套通用解决方案。这也是架构师必会技能之一:架构设计图。
常见的设计模式:
  • 单例模式
  • 工厂模式
  • 策略模式
 

 

 

 

 

 

========引用=================

2017 – Wikipedia – List of software architecture styles and patterns

Architecture vs Design: The Difference Explained

https://herbertograca.com/2017/07/28/architectural-styles-vs-architectural-patterns-vs-design-patterns/