架构、框架和设计模式

软件架构是系统的一个草图,阐述了各个组件之间的通信,层次划分,一旦系统开始详细设计,架构蓝图就很难甚至无法改变。

例如:三层架构:一种设计软件架构的思想。

通常意义上的三层架构就是将整个业务应用划分为表示层(User Interface  Layer)、业务逻辑层(Buesiness Logic Layer)、数据访问层(Data Access Layer)。区分层次的目的是为了体现“高内聚,低耦合”的思想。

1.表示层

表示层位于最外层(最上层),最接近于用户。用于显示数据和接收用户输入的数据为用户提供一种交互式的操作界面。

2.业务逻辑层

业务逻辑层无疑是系统架构中体现核心价值的部分。他的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求相关的系统设计上,也就是说,他与系统所对应的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。

业务逻辑层在体系架构中的位置很关键,他处于数据访问层与表示层中间起到了数据交换中承上启下的作用。对于数据访问层而言,他是调用者;对于表示层而言,他却是被调用者。

3、数据访问层

数据访问层有时候也称为持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档、或是XML文档。简单的说法就是实现对数据表的Select、Insert、Update和Delete操作。

软件框架是(Framework)是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目开发过程中代码不需要从头编写,只需要编写在框架的基础上进行一些开发和调整便可满足要求:对于开发过程而言,这样做会提高软件的质量减低成本,缩短开发时间,是的开发越做越轻松,效益越做越好,形成一种良性循环。

框架不是现成可用的应用系统,他是一个半成品,需要后来的开发人员进行二次开发,实现具体功能的应用系统。框架也不是平台,平台的概念比较模糊,他可以是一种操作系统、一种应用服务器、一种数据库软件或一种通信软件等,因此平台在应用方面主要指提供特定服务的系统软件;而框架更侧重于设计和开发过程,或者可以说,框架通过调用平台提供的服务而起作用。

框架也不是工具包或者类库。望文生义,类库就是一些类的集合,只要我们将一些可以复用的类集中放到一个Library中,就可以称其为一个类库。类库中的许多元素(如:类、结构、接口、枚举等)之间可能有一些关联,但这些关联通常用于支持一个类概念或接口概念的完整表达。如果从一个更高的视角来审视类库,可以发现类库中的一个个“完整的概念”之间是无关的或是关系松散的,框架和类库有着相似的形式,即框架往往也是类的集合;但不同之处在于,框架中的各个类并不是孤立的,框架中的业务逻辑代码是将不同的类连在一起在他们之间建立协作关系,例如:Spring-一个开源的Web设计规范。

设计模式、架构、框架的比较

1、框架与架构

框架不是架构,框架比架构更具体,更偏重于技术,而架构偏重于设计。一个架构可以通过多种框架来实现.

2、框架与设计模式

设计模式研究的是针对单一问题的设计思路和解决方法,一个模式可以应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体,虽然他们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。

3、架构与设计模式

设计模式主要是针对单一问题的解决方法,范畴比较小,而架构是高层次的针对体系结构的一种设计思路,范畴比较大。可以说一个架构中可能会出现多个设计模式类解决架构中的多种问题。

通过上面的分析,可以看出这三者之间得区别还有很多,首先架构是一个范畴最大的概念,是最高层次的设计,一个架构设计中可能会用到多个框架和多个设计模式;而框架

是针对共性抽象出来的半成品,这里面可能包含着多个设计模式;而设计模式就是解决单一问题的设计思路和解决方法。

要做好一个项目,架构设计、框架设计和使用、设计模式都是非常重要的。我们在做一个项目的时候首先设计出来的应该是架构,是对整个问题的一个总体上的设计,之后再会考虑运用什么样的框架和设计模式来实现我们的框架;当然,只使用框架和设计模式中的一种也是经常遇到的。

这三者的共同点都是为解决现实生活中的问题而出现的,都为了使我们的设计更面向对象化。

时间: 2024-08-04 18:21:42

架构、框架和设计模式的相关文章

架构、框架和设计模式关系

原:http://blog.csdn.net/lfsf802/article/details/8487990 在学习软件工程的时候,第一次接触到了架构这个概念.当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的. 随着学习的深入,开始接触了设计模式,也就是那本令我爱上编程的书--<大话设计模式>,书中的小菜和大鸟的清晰的对白,让我犹如身临其境般,一点一点层层递进的认识设计模式,认识面向对象的引以为傲的设计原则.经过了很长时间的学习,深刻的发现

架构 框架 设计模式 --备用

1.    概念 架构:简单的说架构就是一个蓝图,是一种设计方案,将客户的不同需求抽象成为抽象组件,并且能够描述这些抽象组件之间的通信和调用. 框架:软件框架是项目软件开发过程中提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型.框架不是现成可用的应用系统.而是一个半成品,提供了诸多服务,开发人员进行二次开发,实现具体功能的应用系统. 设计模式:是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,它强调的是一个设计问题的解决方法. 2.    框架与架

架构、框架和设计模式关系(转)

(转:http://blog.csdn.net/lfsf802/article/details/8487990#comments) 在学习软件工程的时候,第一次接触到了架构这个概念.当初接触的时候对其的理解是非常浅薄的,因为那时候工程经验比较少,对这样一个深层次的概念还是模糊不清楚的. 随着学习的深入,开始接触了设计模式,也就是那本令我爱上编程的书--<大话设计模式>,书中的小菜和大鸟的清晰的对白,让我犹如身临其境般,一点一点层层递进的认识设计模式,认识面向对象的引以为傲的设计原则.经过了很长

架构、框架、设计模式之间的关系简述

http://developer.51cto.com/art/200906/130816.htm 一.软件体系结构和框架的定义 软件体系结构的英文单词是"architecture". Architecture的基本词义是建筑.建筑学.建筑风格. 软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义. <设计模式>中对框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计. 软件框架是项目软件开发过程中

各类主流框架及设计模式简介

1,使用框架技术的优势:1)不用考虑公共问题,框架已经为我们做好了2)可以专心在业务逻辑上,保证核心业务逻辑的开发质量3)结构统一,便于学习,维护4)最重要的一点:框架中集成了前人的经验,可以帮助新手写出稳健.性能优良而且结构优美的高质量程序:2,什么是框架:框架(Framework)是一个提供了可重用的公共结构的半成品.一方面提供了可以拿来就用的工具,也提供了可重用的设计:框架使混乱的东西变得结构化:框架是一组协同工作的组件:3,java中的主流框架:1)Struts框架:是MVC设计模式的体

框架和设计模式的区别

有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用.在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用:应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性. 框架

MVC框架和设计模式区别

有很多程序员往往把框架模式和设计模式混淆,认为MVC是一种设计模式.实际上它们完全是不同的概念. 框架.设计模式这两个概念总容易被混淆,其实它们之间还是有区别的.框架通常是代码重用,而设计模式是设计重用,架构则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用.在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用:应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性. 框架

MVVM 一种新型架构框架

MVVM是Model-View-ViewModel的简写.微软的WPF带来了新的技术体验,如Silverlight.音频.视频.3D.动画……,这导致了软件UI层更加细节化.可定制化.同时,在技术层面,WPF也带来了 诸如Binding.Dependency Property.Routed Events.Command.DataTemplate.ControlTemplate等新特性.MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presente

三层架构与MVC &amp; 设计模式的较量

刚刚学习了三层架构,而且正在实际应用中,但随着学习的深入,又了解到了一个叫MVC的东西,(早在设计模式中就听到过MVC,只是简单查了一下什么意思.)现在正好把这三个东西放在一起聊聊. 三层 是一个分层式的软件体系架构设计,它可适用于任何一个项目. 它是从整个应用程序架构的角度把程序分为三层UI层,BLL层,DAL层(当然如果程序需要,还可以分多层).三层是为了解决整个应用程序中各个业务操作过程中不同阶段的代码封装的问题,为了使程序员更加专注的处理某阶段的业务逻辑.比如将数据库操作代码封装到一层中