热爱实践而又不讲求科学的人,就好像一个水手进了一只没有舵或罗盘的船,他从来不肯定他往那里走。
——达芬奇
首先,在维基百科中是这样介绍的,“有些人将架构模式和架构风格视为相同的,有些人将风格视为模式的专门化。它们的共同点是,模式和风格都是架构师使用的习惯用法,它们“提供了一种通用语言”或“词汇”来描述系统的类别。”也就是说架构风格和架构模式几乎是在说同一件事,从顶层设计方面,使用抽象方法,描述系统组织方式的惯用法。
在软件方面的模式(惯用法)有很多,可以分为三个层次:架构模式(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