`
shellfj
  • 浏览: 46775 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

软件架构模式的种类

 
阅读更多
在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern)。

        架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质和力学。架构模式的好坏可以影响到总体布局和框架性结构。

        设计模式是中等尺度的结构策略。这些中等尺度的结构实现了一些大尺度组件的行为和它们之间的关系。模式的好坏不会影响到系统的总体布局和总体框架。设计模式定义出子系统或组件的微观结构。

        代码模式(或成例)是特定的范例和与特定语言有关的编程技巧。代码模式的好坏会影响到一个中等尺度组件的内部、外部的结构或行为的底层细节,但不会影响到一个部件或子系统的中等尺度的结构,更不会影响到系统的总体布局和大尺度框架。

架构模式(Architectural Pattern)

一个架构模式描述软件系统里的基本的结构组织或纲要。架构模式提供一些事先定义好的子系统,指定它们的责任,并给出把它们组织在一起的法则和指南。称之为系统模式。

•MVC模式,一个架构模式常常可以分解成很多个设计模式的联合使用。MVC模式常常包括调停者(Mediator)模式、策略(Strategy)模式、合成(Composite)模式、观察者(Observer)模式等。

•Layers(分层)模式,有时也称Tiers模式

•Blackboard(黑板)模式

•Broker(中介)模式

•Distributed Process(分散过程)模式

•Microkernel(微核)模式



架构模式常常划分成如下的几种:

一、 模块结构(From Mud to Structure)型。帮助架构师将系统合理划分,避免形成一个对象的海洋。包括Layers(分层)模式、Blackboard(黑板)模式、Pipes/Filters(管道/过滤器)模式等。

二、分散系统(Distributed Systems)型。为分散式系统提供完整的架构设计,包括像Broker(中介)模式等。

三、人机互动(Interactive Systems)型,支持包含有人机互动介面的系统的架构设计,例子包括MVC(Model-View-Controller)模式、PAC(Presentation-Abstraction-Control)模式等。

四、Adaptable Systems型,支持应用系统适应技术的变化、软件功能需求的变化。如Reflection(反射)模式、Microkernel(微核)模式等。

设计模式(Design Pattern)

一个设计模式提供一种提炼子系统或软件系统中的组件的,或者它们之间的关系的纲要设计。设计模式描述普遍存在的在相互通讯的组件中重复出现的结构,这种结构解决在一定的背景中的具有一般性的设计问题。

设计模式常常划分成不同的种类,常见的种类有:

创建型设计模式,如工厂方法(Factory Method)模式、抽象工厂(Abstract Factory)模式、原型(Prototype)模式、单例(Singleton)模式,建造(Builder)模式等

结构型设计模式,如合成(Composite)模式、装饰(Decorator)模式、代理(Proxy)模式、享元(Flyweight)模式、门面(Facade)模式、桥梁(Bridge)模式等

行为型模式,如模版方法(Template Method)模式、观察者(Observer)模式、迭代子(Iterator)模式、责任链(Chain of Responsibility)模式、备忘录(Memento)模式、命令(Command)模式、状态(State)模式、访问者(Visitor)模式等等。

以上是三种经典类型,实际上还有很多其他的类型,比如Fundamental型、Partition型,Relation型等等。设计模式在特定的编程语言中实现的时候,常常会用到代码模式。比如单例(Singleton)模式的实现常常涉及到双检锁(Double-Check Locking)模式等。

代码模式(Coding Pattern)

代码模式(或成例)是较低层次的模式,并与编程语言密切相关。代码模式描述怎样利用一个特定的编程语言的特点来实现一个组件的某些特定的方面或关系。

较为著名的代码模式的例子包括双检锁(Double-Check Locking)模式等

http://blog.csdn.net/panyaxiong/article/details/1825331
分享到:
评论

相关推荐

    软件架构模式的种类 三种模式

    软件架构模式的种类 架构模式 架构模式(Architectural Pattern)、设计模式(Design Pattern)、代码模式(Coding Pattern)

    面向模式软件架构(中文版1-5卷).part3.rar

    作者的看法是,模式不仅仅被储存在不同种类的容器当中,还应该根据相应的标准进行分类,这就是"模式系统"。 GoF通过把模式划分为"创建型","结构型"和"行为型"等进行分类,而《面向模式的软件体系结构》则根据已获得...

    面向模式软件架构(中文版1-5卷).part1.rar

    作者的看法是,模式不仅仅被储存在不同种类的容器当中,还应该根据相应的标准进行分类,这就是"模式系统"。 GoF通过把模式划分为"创建型","结构型"和"行为型"等进行分类,而《面向模式的软件体系结构》则根据已获得...

    面向模式软件架构(中文版1-5卷).part2.rar

    作者的看法是,模式不仅仅被储存在不同种类的容器当中,还应该根据相应的标准进行分类,这就是"模式系统"。 GoF通过把模式划分为"创建型","结构型"和"行为型"等进行分类,而《面向模式的软件体系结构》则根据已获得...

    软件架构之软件架构设计

    软件架构之软件架构设计电子书下载 由于[GOF95]是论述软件模式的著作的第一本,也是OO设计理论著作中最流行的一本,因此有些人常常使用设计模式(Design Pattern)一词来指所有直接处理软件的架构、设计、程序实现的...

    软件架构师必修课

     (3)软件架构设计的特点、层次、分类  (4)软件构架的主要理论、方向和趋势  (5)软件工厂,实现软件开发的产业化  软件生命周期进程模型  (1)RUP与XP  (2)MSF  (3)Agile与CMMI  使用UML进行软件...

    高级软件架构设计实践笔记

    第一章 软件架构概念的分类 第二章 架构对新产品的作用 第三章 架构师职责 第四章 项目经理与构架师的分工与协作 第五章 架构设计为开发人员解决什么问题 第六章 开发过程 第七章 软件的质量属性 第八章 架构设计的...

    推荐系统架构师考试全套视频教程合集.zip

    第七部分 软件架构设计 7.1 软件架构的概念 7.2 软件架构风格 7.3 面向服务的架构 7.4 特定领域软件架构 7.5 基于架构的软件开发方法 7.6 软件架构评估 7.7 软件产品线 第八部分 基于构件的开发 8.1 中间件技术 ...

    UML和模式应用(架构师必备).part06.rar

    13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、系统操作和层之间的联系 13.9 示例:NextGen的逻辑架构和包图 13.10 示例:Monopoly逻辑架构 ...

    单层架构 三层架构 多层架构

    软件分层的概念一直很模糊,也没有一个统一的标准,即使有些人明白三层架构的理念但却不会使用,不是如何创建三层架构。在网上发现了一个很不错的网站架构设计模式,分别介绍了单层架构,二层架构,三层架构,有例字...

    A2M 2022年互联网架构与AI技术峰会PPT合集(86份).zip

    2022年互联网架构与AI技术峰会PPT合集(86份),共包含机器学习、计算机视觉、数据中台、业务架构、前沿趋势、低代码、元宇宙等27个分类。 编程教育中的若干机器学习应用 多模态机器学习在K12教育中的应用和未来 ...

    设计模式+-+可复用面向对象软件的基础( 高清 )

    这一版是非扫描文字版,质量很高,非常清晰,并且添加了完整的书签目录,方便大家阅读,我上传的资源基本都是自己整理过书签或者去除水印的,主要与C++,设计模式,架构,QT等有关系,更多的可以去我的资源页看看。...

    UML和模式应用(架构师必备).part02.rar

    13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、系统操作和层之间的联系 13.9 示例:NextGen的逻辑架构和包图 13.10 示例:Monopoly逻辑架构 ...

    新考纲-系统架构设计师(软考高级) 一站式通关课程(2024版)

    软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接)、指导构件集成的模式以及这些模式的约束组成。 软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求...

    架构师考试-快速通关-知识点

    7天快速通关选择题和资料分析题 包含内容: ...设计模式-分类、组成、与软件架构关系 设计-物理网络设计 实时操作系统特点 数据库-orm/分布式-二阶段提交、设计范式、元祖盐酸、在线访问方式 特性.....

    四层架构设计驱动模型在CKM中的实践

    软件开发的过程中是存在着多个层次的,而对于每一个层次,驱动其进行的因素也所不同,所以更好的方式是,区分和建立必要的层次,从而形成一种层次化的多因素驱动的软件架构设计模型,我们将整个软件架构的设计划分为...

    UML和模式应用(架构师必备).part01.rar

    13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、系统操作和层之间的联系 13.9 示例:NextGen的逻辑架构和包图 13.10 示例:Monopoly逻辑架构 ...

    UML和模式应用(架构师必备).part07.rar

    13.4 什么是软件架构 13.5 应用UML:包图 13.6 准则:使用层进行设计 13.7 准则:模型-视图分离原则 13.8 SSD、系统操作和层之间的联系 13.9 示例:NextGen的逻辑架构和包图 13.10 示例:Monopoly逻辑架构 ...

    网站架构技术

    大型网站架构模式 架构模式 分层 分割 分布式 分布式应用和服务 分布式静态资源 分布式数据和存储 分布式计算 集群 缓存 CDN 反向代理 本地缓存 分布式缓存 异步 冗佘 冷...

Global site tag (gtag.js) - Google Analytics