试问设计模式、架构模式和架构风格的异同点

2020-11-18 09:53:54 字数 6091 阅读 7065

1楼:黑夜里前行

架构模式从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案。

架构风格是描述某一特定应用领域中系统组织方式的惯用模式,是系统主要的、组织性的设计。

风格是模式的外在表现。

三者的共同点是都用于设计,是一套可重用的方法套路。不同点:前二者的不同点在于粒度,设计模式定义出子系统或组件的微观结构,结架构模式则从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案;后二者的区别在于前者着重描述系统的内部组织,后者着重于描述结构的外在表现。

2楼:是梦终空

架构风格描述

客户端-服务器 将系统分为两个应用,

架构,框架和设计模式的区别

3楼:深圳市励拓软件****

设计模式是架构的手段(之一)。

具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。

而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的design decision。一般好的(静态)架构可以尽量使变化发生在局部(模块内)而不影响整个系统。架构上的变化往往成本会非常高。

而且设计模式只有一些是适用于架构的,还有一些只是用于具体的类设计的,剩下的一些则只是克服编程语言的限制而已。

打个不恰当的比方,有点像挡拆和战术的关系。

在合适的情况下用好挡拆可以很好的执行战术,

但战术不只有挡拆,

而且有的战术不需要挡拆,

最重要的是盲目的用挡拆有时候反而会起反作用。

面对客户哔哔时,我们用需求分析架构。

面对整个软件或系统时,我们谈论架构分析。

面对软件模块设计时,我们使用设计模式。

面对模块实现时,我们应用特定编程语言的特性。

软件架构 :一般场景下拥有设计的选择权

设计模式 :选择后特定场景下的最佳实践

软件架构是软件的一种搭建形式,往往规定了软件的模块组成,通信接口(含通信数据结构),组件模型,集成框架等等。往往规定了具体的细节。

设计模式是一种软件的实现方法,是一种抽象的方**,是为了更好的实现软件而归纳出来的有效方法。

实现一种软件架构,不同组成部分可能用到不同的设计模式,某一部分也可能可以采用不同的设计模式实现。

4楼:藤原子大雄

类库:封装好的**,通过调用开放出来的api获取相应的功能 框架:也是封装好的**,不过会功能更加多样,一个框架会包含多个类库,并且框架面向的顶层的开发,而类库更多的是面向底层的开发。

sdk:software development kit

什么是设计模式和架构模式之间的区别

5楼:安静文飞

设计模式是架构的手段(之一)。

具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。

而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的design decision。一般好的(静态)架构可以尽量使变化发生在局部(模块内)而不影响整个系统。架构上的变化往往成本会非常高。

而且设计模式只有一些是适用于架构的,还有一些只是用于具体的类设计的,剩下的一些则只是克服编程语言的限制而已。

打个不恰当的比方,有点像挡拆和战术的关系。

在合适的情况下用好挡拆可以很好的执行战术,

但战术不只有挡拆,

而且有的战术不需要挡拆,

最重要的是盲目的用挡拆有时候反而会起反作用。

面对客户哔哔时,我们用需求分析架构。

面对整个软件或系统时,我们谈论架构分析。

面对软件模块设计时,我们使用设计模式。

面对模块实现时,我们应用特定编程语言的特性。

软件架构 :一般场景下拥有设计的选择权

设计模式 :选择后特定场景下的最佳实践

软件架构是软件的一种搭建形式,往往规定了软件的模块组成,通信接口(含通信数据结构),组件模型,集成框架等等。往往规定了具体的细节。

设计模式是一种软件的实现方法,是一种抽象的方**,是为了更好的实现软件而归纳出来的有效方法。

实现一种软件架构,不同组成部分可能用到不同的设计模式,某一部分也可能可以采用不同的设计模式实现。

什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点

6楼:程锦康

面向对象风格:

将数据标识和基本操作封装到对象中。模式的构件是对象,对象维护自身表示的完整性,通过消息机制通信。对象交互需要彼此标识,通过对象之间的协作完成计算过程。

控制环路风格:

将过程输出的指定属性维护在一个特定的参考值。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件。通过手机实际和理想的过程状态信息,调整过程和变量,使趋向于理想状态。

体系结构,软件构架和设计模式之间的区别和联系

7楼:匿名用户

结构:程序功能实现的逻辑

框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一方面也可以说框架是可被应用开发者定制的应用骨架。

框架亦可称为应用架构,在特定领域基于体系结构的可重用的设计。也可以认为框架是体系结构在特定领域下的应用。框架的例子如mvc。

设计模式 在一定的环境中解决某一问题的方案

构件通常是**重用,而设计模式是设计重用,框架则介于两者之间,部分**重用,部分设计重用,有时分析也可重用.

构架是architecture:它是对软件系统的系统组织,是对构成系统的

构件的接口,行为模式,协作关系等体系问题的决策总和。它不仅涉及

到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重

用性,可理解性

设计模式比框架更为抽象

设计模式在碰到具体问题后,才能产生**;框架已经可以用**表示

设计模式是比框架更小的体系结构元素:

框架中可以包括多个设计模式

简单点说:结构 < 设计模式 < 架构 《框架

结构+算法=程序(功能**块)

程序与程序之间进行调整=设计模式

多个设计模式相组合(组件)=架构(系统)

8楼:匿名用户

nuli2000 帮你整理一下, 感觉你写的超好= =

结构 < 设计模式 < 架构 《框架

结构+算法=程序(功能**块)

程序与程序之间进行调整=设计模式

多个设计模式相组合(组件)=架构(系统)

结构:程序功能实现的逻辑

框架:是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一方面也可以说框架是可被应用开发者定制的应用骨架。 框架亦可称为应用架构,在特定领域基于体系结构的可重用的设计。

也可以认为框架是体系结构在特定领域下的应用。框架的例子如mvc。框架中可以包括多个设计模式。

设计模式:在一定的环境中解决某一问题的方案。设计模式比框架更为抽象,是比框架更小的体系结构元素。设计模式在碰到具体问题后,才能产生**;框架已经可以用**表示。

构架:是architecture:它是对软件系统的系统组织,是对构成系统的构件的接口,行为模式,协作关系等体系问题的决策总和。

它不仅涉及到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重用性,可理解性

构架通常是**重用,而设计模式是设计重用,框架则介于两者之间,部分**重用,部分设计重用,有时分析也可重用.

记录信息架构和交互信息架构的区别

9楼:匿名用户

架构模式从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案。

架构风格是描述某一特定应用领域中系统组织方式的惯用模式,是系统主要的、组织性的设计。

风格是模式的外在表现。

三者的共同点是都用于设计,是一套可重用的方法套路。不同点:前二者的不同点在于粒度,设计模式定义出子系统或组件的微观结构,结架构模式则从子系统或模块、及其之间的关系层次上描述了粗粒度的解决方案;后二者的区别在于前者着重描述系统的内部组织,后者着重于描述结构的外在表现。

软件架构模式基本概念及三者区别

10楼:匿名用户

在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(architectural pattern)、设计模式(design pattern)、**模式(coding pattern)。

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

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

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

架构模式(architectural pattern)

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

mvc模式,一个架构模式常常可以分解成很多个设计模式的联合使用。mvc模式常常包括调停者(mediator)模式、策略(strategy)模式、合成(***posite)模式、观察者(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)模式等

结构型设计模式,如合成(***posite)模式、装饰(decorator)模式、**(proxy)模式、享元(flyweight)模式、门面(facade)模式、桥梁(bridge)模式等

行为型模式,如模版方法(template method)模式、观察者(observer)模式、迭代子(iterator)模式、责任链(chain of responsibility)模式、备忘录(memento)模式、命令(***mand)模式、状态(state)模式、访问者(visitor)模式等等。

以上是三种经典类型,实际上还有很多其他的类型,比如fundamental型、partition型,relation型等等。设计模式在特定的编程语言中实现的时候,常常会用到**模式。比如单例(singleton)模式的实现常常涉及到双检锁(double-check locking)模式等。

**模式(coding pattern)

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

较为著名的**模式的例子包括双检锁(double-check locking)模式等