`
shellfj
  • 浏览: 48013 次
  • 性别: 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通过把模式划分为"创建型","结构型"和"行为型"等进行分类,而《面向模式的软件体系结构》则根据已获得...

    软件的架构与设计模式之什么是架构

    类似于建筑领域的模式,软件架构模式提供了一套标准的解决方案,可以应对常见的设计问题。例如,微服务架构模式可以提高系统的可扩展性和可维护性;事件驱动架构模式可以实现异步通信,提高系统的响应速度。 同时,...

    05_设计模式与软件架构设计.pdf

    ### 设计模式与软件架构设计 #### 面向对象软件架构设计思想 面向对象编程是一种重要的编程范式,它通过模拟现实世界中的对象及其属性和行为来组织代码。面向对象设计强调的是对象间的交互,而不是传统的过程或...

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

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

    面向模式的软件体系结构(1-5)卷打包

    这套丛书由五卷组成,每卷都专注于一个特定的主题,以模式为基本单元,探讨了软件架构的各个方面。 第1卷:模式系统,是整个系列的基础,它介绍了模式的概念和体系,以及如何在实际软件开发中应用模式。这一卷详细...

    面向模式的软件架构 卷5 模式与模式语言__试读版 PDF电子书下载 带索引书签目录高清版_12865986.pdf

    - 分类:模式可以根据其解决的问题类型进行分类,例如设计模式、架构模式等。 2. **模式的应用**: - 在软件开发过程中,模式被用来解决常见的设计问题,提高代码的质量和可维护性。 - 例如,设计模式如工厂模式...

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

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

    软件架构与设计模式介绍

    - **按功能分类**:面向对象设计模式、软件架构模式等。 - **按作用分类**:创建型模式、结构型模式、行为型模式等。 #### 三、常用模式 **3.1 常用架构模式** - **分层模式**:将软件系统划分为多个层次,每一层...

    趣味记忆5大经典的软件架构风格

    软件架构风格是设计大型复杂软件系统时所采用的组织结构或模式,它们为软件开发提供指导原则和可重用的设计模式。以下是对5大经典软件架构风格的详细说明: 1. 数据流风格:这种风格主要关注数据的处理流程,分为...

    软件架构复习资料

    **三、软件架构模式与重要性** **架构模式**被视为对特定问题的解决方案模板,它封装了元素、关系类型和使用约束,为架构师提供了一种结构化的思考方式。**参考模型**则是一种功能性视角,通过数据流的划分帮助理解...

    《软件架构》必考41题

    以上内容涵盖了《软件架构》中的一些核心概念,包括架构定义、重要性、影响因素、模式的构成和目的,以及两种常见架构模式的比较与特点。理解这些知识点有助于在软件开发中做出明智的架构决策。

    软件架构之软件架构设计

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

    面向模式的软件架构 - 卷5 模式与模式语言(中文版)

    1. **架构模式**:关注于整个系统的组织结构和关键组件之间的关系。 2. **设计模式**:侧重于解决软件设计层面的具体问题,例如对象创建、组合等。 3. **实现模式**:聚焦于代码级别的优化和技术实现细节。 4. **...

    软件架构建模设计模式

    **软件架构建模设计模式** 在软件开发领域,设计模式是一种通用可重用的解决方案,它针对特定问题或场景提供了一种经过验证的有效方法。在Java这样的面向对象编程语言中,设计模式尤其重要,因为它们可以帮助开发者...

    Software Architecture 吉大简答题软件学院整理

    - **知识点**:本节探讨了 Frank Buschmann 等人在其著作中提出的软件架构模式分类。 - **三个级别**:Buschmann 将软件开发过程中出现的模式分为三个层次:架构模式、设计模式和实现模式。 - **架构模式示例**:...

Global site tag (gtag.js) - Google Analytics