架构风格 VS 架构模式

热爱实践而又不讲求科学的人,就好像一个水手进了一只没有舵或罗盘的船,他从来不肯定他往那里走。

                                                                                                                                    ——达芬奇

首先,在维基百科中是这样介绍的,“有些人将架构模式和架构风格视为相同的,有些人将风格视为模式的专门化。它们的共同点是,模式和风格都是架构师使用的习惯用法,它们“提供了一种通用语言”或“词汇”来描述系统的类别。”也就是说架构风格和架构模式几乎是在说同一件事,从顶层设计方面,使用抽象方法,描述系统组织方式的惯用法

在软件方面的模式(惯用法)有很多,可以分为三个层次:架构模式(Architectural Pattern),设计模式(Design Pattern),代码模式(Coding Pattern)。

  • 架构模式

通常所认为的架构模式有以下几种

黑板系统  Blackboard
客服端服务器模式  Client-server (2-tier, 3-tier, n-tier, cloud computing exhibit this style)
基于组件的架构模式  Component-based
以数据为中心  Data-centric
事件驱动(隐式调用)  Event-driven (or implicit invocation)(EDA)
层次结构  Layered (or multilayered architecture)
微服务架构  Microservices architecture
单体模式  Monolithic application
点对点  Peer-to-peer (P2P)
管道过滤器架构  Pipes and filters
插件模式  Plug-ins
表征性状态转移(RESTful架构)Representational state transfer (REST)
基于规则的架构  Rule-based
面向服务的架构  Service-oriented architecture (SOA)
无共享架构  Shared nothing architecture(SN)
基于空间的架构  Space-based architecture (SBA)

  • 设计模式

设计模式通常认为有23种

创建型模式(5种):

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式(7种):

适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式(11种):

策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

  • 代码模式

代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。代码模式也可以说是编码时的套路,一些技巧。是最低层次的套路。只能影响某一方法或类中的一些细节。

拿到系统架构设计师证书,感觉还需要完善自己,学习永无止境!

https://en.wikipedia.org/wiki/Software_architecture#Architectural_styles_and_patterns

软件架构和架构风格_ithzhang的博客-CSDN博客_软件架构风格

你可能感兴趣的:(架构演化,架构)