在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
架构和框架的区别是什么?相信问这个问题的一定是新手小白。确实会有人在刚刚入门编程的时候,架构和框架的傻傻分不清。本文就框架和架构的定义、使用、特点等等方面,进行对比分析。
一、框架:
1、定义:
框架(framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法,另一种定义为,框架是可被应用开发者定制的应用骨架,前者是从应用方面而后者是从墓地的方面给出的定义。
框架是一个可服用的设计构件,通常以构件库的形式出现,但构架库只是框架的一个重要部分,框架的关键在于框架内对象间的的交互模式和控制流模式。
2、框架和构件
框架比构件可定制性强。在某种程序上,将构件和框架看成两个不同但又彼此协作的技术更好。框架为构件提供重用的环境,为构件处理错误,交换数据及激活操作提供了标准的方法。
3、应用框架
应用框架是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发,框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类或组装对象来支持应用专用的行为。
4、框架的特点
① 其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统,而且框架一般是成熟的,不断升级的软件。
②框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的。
③一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现,也就是说框架是对特定应用领域中的应用系统的部分设计和实现。
5、为什么要用框架
因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
二、架构
1、定义
软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计,是一个系统的草图,描述的对象是直接构成系统的抽象组件。各个组件之间的连接明确细致的描述组件之间的通讯。
2、如何使用
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或对象,在面向对象领域当中,组件之间的连接通常用接口来实现。软件体系结构是构建计算机软件实践的基础。
3、要素
①它是一个软件系统从整体到部分的最高层次的划分。一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。详细地说,就是要包括架构元件(Architecture Component)、联结器(Connector)、任务流(Task-flow)。所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。
②建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。
4、设计目标
可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。
安全性(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。
可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。
可定制化(Customizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。
可伸缩 (Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展。
可维护性(Maintainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的软件需求反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费。
客户体验(Customer Experience)。软件系统必须易于使用。
市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。
三、框架与架构区别
框架是软件,架构不是软件。
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用系统直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”
软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。
框架技术和架构技术的出现,都是为了解决软件系统日益复杂所带来的困难而采取“分而治之”思维的结果。先大局后局部,就出现了架构;先通用后专用,就出现了框架。架构是问题的抽象解决方案,它关注大局而忽略细节;而框架是通用半成品,还必须根据具体需求进一步定制开发才能变成应用系统。
看完了架构和框架对比分析,相信大家都能区别架构和框架了吧。要想了解架构和框架的更多知识,就继续关注博学谷资讯吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
自学Java需要什么基础?零基础可以学吗?
Java长久以来都是最受开发者和企业欢迎的编程语言。因此目前Java的就业形势一片大好,对于那些想转行高薪有前途的求职者来说,学习Java是个很好的选择。有些人可能要问了:自学Java需要什么基础?零基础可以学吗?答案是肯定的,学习是没有限制的,只要你愿意学习,零基础的小白也不用担心学不好Java。关键在于大家有没有学习的决心和毅力以及科学的学习方法。
4580
2019-10-21 18:10:35
2019年Spring Boot面试题集合附答案
相信所有Java开发者都认同,在微服务中,Spring Boot是最好的Java框架。Spring Boot自身最大的优势就是简化配置,可以说它真正实现了自动化配置。因此大家要想做好Java开发,给大家的建议就是成为Spring Boot的高手。本文为大家整理了2019年最新的Spring Boot面试题和答案,如果大家能够好好做一做这份面试题集合,相信面试一定手到擒来。
5042
2019-12-20 18:05:36
Java学习看什么书比较好?
虽然视频学习资料是许多人入门或提升编程的首选,但是书籍材料对学习者来讲,也是必须要看的。尤其对于处在不同能力阶段的人来讲,选择适合自己学习的书尤为重要。那么,Java学习看什么书比较好呢?下面本文会按照基础入门和进阶提升两个方面,推荐适合各个能力阶段学习的书籍。
3388
2020-07-10 10:40:20
Java学完面向对象可以干什么?
面向对象是软件开发方法一种编程范式。面向对象是Java学习中的一个基础部分,学学面向对象逐步建立起面向对象编程思想,从会使用对象,到内存分析,再到理解为什么封装对象。想成为一名程序员只掌握面向对象的知识是远远不够的。
3751
2020-12-23 10:02:11
Java原子操作之CAS原子指令学习
Java原子操作之CAS,CAS(Compare and Swap),即比较并替换,是用于实现多线程同步的原子指令。
1516
2022-07-01 13:57:43