1、软件架构和设计模式有什么区别
设计模式是架构的手段(之一)。
具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。
而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的design decision。一般好的(静态)架构可以尽量使变化发生在局部(模块内)而不影响整个系统。架构上的变化往往成本会非常高。
而且设计模式只有一些是适用于架构的,还有一些只是用于具体的类设计的,剩下的一些则只是克服编程语言的限制而已。
打个不恰当的比方,有点像挡拆和战术的关系。
在合适的情况下用好挡拆可以很好的执行战术,
但战术不只有挡拆,
而且有的战术不需要挡拆,
最重要的是盲目的用挡拆有时候反而会起反作用。
面对客户哔哔时,我们用需求分析架构。
面对整个软件或系统时,我们谈论架构分析。
面对软件模块设计时,我们使用设计模式。
面对模块实现时,我们应用特定编程语言的特性。
软件架构 :一般场景下拥有设计的选择权
设计模式 :选择后特定场景下的最佳实践
软件架构是软件的一种搭建形式,往往规定了软件的模块组成,通信接口(含通信数据结构),组件模型,集成框架等等。往往规定了具体的细节。
设计模式是一种软件的实现方法,是一种抽象的方法论,是为了更好的实现软件而归纳出来的有效方法。
实现一种软件架构,不同组成部分可能用到不同的设计模式,某一部分也可能可以采用不同的设计模式实现。
2、软件体系结构常用的设计模式包括哪些
MVC是当前流行的Web应用设计框架的实施标准,是软件工程中的一种软件架构模式[ ]。它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),目的是实现一种动态和可持续的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的代码或功能重复利用成为可能。
在这种设计结构下,一个应用被分为三个部分:model、view和controller,每个部分负责不同的功能。根据用户界面(view)的操作完成对程序数据(model)的更新。将程序数据(model)改变及时反应到用户界面(view)上。也就是完成两个方向的动作。
3、什么是系统架构设计?
简单一点,系统架构设计就是一个系统的草图,描述了构成系统的抽象组件,以及各个组件之间的是如何进行通讯的,这些组件在实现过程中可以被细化为实际的组件比如类或者对象。在面向对象领域中,组件之间的联通通常面向于接口实现的。
是人们对一个结构内的元素及元素间关系的一种主观映射的产物。架构设计是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
“架构”一词最早来自建筑学,原意为建筑物设计和建造的艺术。但是在软件工程领域,软件架构不是一个新名词,只是在早期的著作中人们将软件架构称为软件体系架构。这就是架构的概念。所谓架构,就是人们对一个结构内的元素及元素间关系的一种主观影射的产物。
无论何种系统架构应用领域,目的都是一样的,即完整地、高一致性的、平衡各种利弊的、有技术和市场前瞻性的设计系统和实施系统。
(3)网站的系统架构设计模式扩展资料
系统架构的主要任务是界定系统级的功能与非功能要求、规划要设计的整体系统的特征、规划并设计实现系统级的各项要求的手段,同时利用各种学科技术完成子系统的结构构建。
在系统架构中,由于对软件越来越深入的依赖,软件架构的任务也体现出重要的作用。而且系统架构与软件架构是紧密联系和相互依赖的。
1997年,Eberhadrt Rechtin 与MarkW Maier 在其论著中,为计算机科学总结了系统架构方面的实践成果,从而奠定了系统科学和系统架构在计算机科学中的基石。
4、设计系统应该采用什么模式进行设计
结构:程序功能实现的逻辑
框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一方面也可以说框架是可被应用开发者定制的应用骨架。
框架亦可称为应用架构,在特定领域基于体系结构的可重用的设计。也可以认为框架是体系结构在特定领域下的应用。框架的例子如MVC。
设计模式 在一定的环境中解决某一问题的方案
构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用.
构架是architecture:它是对软件系统的系统组织,是对构成系统的
构件的接口,行为模式,协作关系等体系问题的决策总和。它不仅涉及
到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重
用性,可理解性
设计模式比框架更为抽象
设计模式在碰到具体问题后,才能产生代码;框架已经可以用代码表示
设计模式是比框架更小的体系结构元素:
框架中可以包括多个设计模式
简单点说:结构 < 设计模式 < 架构 <框架
结构+算法=程序(功能代码块)
程序与程序之间进行调整=设计模式
多个设计模式相组合(组件)=架构(系统)
5、到底如何区分什么是架构,框架,模式和平台
1、设计模式
为什么要先说设计模式?因为设计模式在这些概念中是最基本的,而且也比较简单。那么什么是设计模式呢?说的直白点,设计模式就是告诉你针对特定问题如何组织类、对象和接口之间的关系,是前人总结的经验。比如我要在代码中实现一个全局唯一的配置类,那么就使用Singleton模式。设计模式在实际编码工作和设计框架时会被使用到,而更高层的架构和平台则不会太关注它。
2、框架
做WEB开发接触到最多的框架可数ORM框架,ORM框架只是所有数据关系映射框架的统称,具体的如NHibernate、ActiveRecord等,框架是为了解决特定问题而存在的,其它诸如模板框架、缓存框架,框架不能直接使用,需要二次开发。
3、架构
从大的层面来说,比如针对公司业务的B2C网站系统架构,里面可能会用到多种解决各方面问题的框架,关注的是技术整合、扩展、可维护性。换个角度,在框架中也会涉及到架构问题,比如开发NHibernate框架,也需要考虑如何进行设计。
4、平台
平台的概念类似框架,但又结合的架构的考虑,它是更高层面上的“框架”,准确说是一种应用。它是针对企业用户,为解决企业业务需要而形成的产品。
6、什么是软件体系结构的设计模式?
MVC是当前流行的Web应用设计框架的实施标准,是软件工程中的一种软件架构模式[ ]。它把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),目的是实现一种动态和可持续的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的代码或功能重复利用成为可能。
在这种设计结构下,一个应用被分为三个部分:model、view和controller,每个部分负责不同的功能。根据用户界面(view)的操作完成对程序数据(model)的更新。将程序数据(model)改变及时反应到用户界面(view)上。也就是完成两个方向的动作。
7、架构,框架和设计模式的区别
设计模式是架构的手段(之一)。
具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。
而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的design decision。一般好的(静态)架构可以尽量使变化发生在局部(模块内)而不影响整个系统。架构上的变化往往成本会非常高。
而且设计模式只有一些是适用于架构的,还有一些只是用于具体的类设计的,剩下的一些则只是克服编程语言的限制而已。
打个不恰当的比方,有点像挡拆和战术的关系。
在合适的情况下用好挡拆可以很好的执行战术,
但战术不只有挡拆,
而且有的战术不需要挡拆,
最重要的是盲目的用挡拆有时候反而会起反作用。
面对客户哔哔时,我们用需求分析架构。
面对整个软件或系统时,我们谈论架构分析。
面对软件模块设计时,我们使用设计模式。
面对模块实现时,我们应用特定编程语言的特性。
软件架构 :一般场景下拥有设计的选择权
设计模式 :选择后特定场景下的最佳实践
软件架构是软件的一种搭建形式,往往规定了软件的模块组成,通信接口(含通信数据结构),组件模型,集成框架等等。往往规定了具体的细节。
设计模式是一种软件的实现方法,是一种抽象的方法论,是为了更好的实现软件而归纳出来的有效方法。
实现一种软件架构,不同组成部分可能用到不同的设计模式,某一部分也可能可以采用不同的设计模式实现。
8、软件架构模式基本概念及三者区别
在做软件架构设计时,根据不同的抽象层次可分为三种不同层次的模式:架构模式(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)模式等
9、什么是设计模式和架构模式之间的区别
设计模式是架构的手段(之一)。
具体一点说,设计模式可以在某些情况帮助架构软件的静态结构。
而架构的范围要大一些,更高层一些,考虑的更多的是非常重要的全局性的design decision。一般好的(静态)架构可以尽量使变化发生在局部(模块内)而不影响整个系统。架构上的变化往往成本会非常高。
而且设计模式只有一些是适用于架构的,还有一些只是用于具体的类设计的,剩下的一些则只是克服编程语言的限制而已。
打个不恰当的比方,有点像挡拆和战术的关系。
在合适的情况下用好挡拆可以很好的执行战术,
但战术不只有挡拆,
而且有的战术不需要挡拆,
最重要的是盲目的用挡拆有时候反而会起反作用。
面对客户哔哔时,我们用需求分析架构。
面对整个软件或系统时,我们谈论架构分析。
面对软件模块设计时,我们使用设计模式。
面对模块实现时,我们应用特定编程语言的特性。
软件架构 :一般场景下拥有设计的选择权
设计模式 :选择后特定场景下的最佳实践
软件架构是软件的一种搭建形式,往往规定了软件的模块组成,通信接口(含通信数据结构),组件模型,集成框架等等。往往规定了具体的细节。
设计模式是一种软件的实现方法,是一种抽象的方法论,是为了更好的实现软件而归纳出来的有效方法。
实现一种软件架构,不同组成部分可能用到不同的设计模式,某一部分也可能可以采用不同的设计模式实现。