第一次在CSDN上写文章,还真不敢下笔,因为牛人实在太多了。

纯原创的东西是不敢拿出来现了,就把自己收集的一些资料拿出来分享一下吧。框架越来越多的应用到了软件开发之中,好的框架确实让程序员轻松不少。但也有好多初学者应该还没用过,下面就一起分享一下关于框架结构的知识。

为什么要用框架?
       因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。
      框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

框架是一个应用程序的半成品。框架提供了可在应用程序之间共享的可覆用的公共结构。开发者把框架融入他们自己的应用程序,并加以扩展,以满足他们特定的需要。框架和工具包的不同之处在于,框架提供了一致的结构,而不仅仅是一组工具类。
     框架其实就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。
      构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。
      应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。
      应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的力度越大,其中包含的领域知识就更加完整。

框架和设计模式的关系
框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。

另外框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。采用框架技术进行软件开发的主要特点包括:
领域内的软件结构一致性好;
建立更加开放的系统;
重用代码大大增加,软件生产效率和质量也得到了提高;
软件设计人员要专注于对领域的了解,使需求分析更充分;
存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;
允许采用快速原型技术;
有利于在一个项目内多人协同工作;
大量的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。

以上关于框架的说明应该说的很清楚了,要想真正体会到框架的强大和在实际开发中的作用,我想大家还是亲自try一下更好,用一下就自然心里神会了。

——fighting_lin

关于程序设计中的框架结构相关推荐

  1. R程序设计中的IF、IFELSE、SWITCH

    R程序设计中的IF.IFELSE.SWITCH 目录 R程序设计中的IF.IFELSE.SWITCH R程序设计中的IF语句 R程序设计中的IFELSE语句

  2. 在Java程序设计中,设置环境变量path和classpath的作用分别是什么?

    在Java程序设计中,设置环境变量path和classpath的作用分别是什么? asd79308 10级  分类: 编程开发  被浏览344次  2013.07.22 额,你这问题问的有够" ...

  3. 学号20175313 《程序设计中临时变量的使用》第八周

    目录 程序设计中临时变量的使用 一.题目要求 二.运行结果截图 三.遇到的问题及其解决方法 四.代码链接 五.心得体会 程序设计中临时变量的使用 一.题目要求 //定义一个数组,比如int arr[] ...

  4. 浅谈单片机程序设计中的“分层思想”!

    浅谈单片机程序设计中的"分层思想",并不是什么神秘的东西,事实上很多做项目的工程师本身自己也会在用.看了不少帖子都发现没有提及这个东西,然而分层结构确是很有用的东西,参透后会有一种 ...

  5. 在ASP程序设计中在使用Response对象

    Response对象在ASP程序设计中的主要功能是从浏览器端到服务器端传送数据到浏览器的客户端,我们知道ASP的脚本是在服务器端执行的,他并没有输出"值"的功能.要想拥有输出&qu ...

  6. 状态机思路在程序设计中的应用

    状态机思路在单片机程序设计中的应用 状态机的概念 状态机是软件编程中的一个重要概念.比这个概念更重要的是对它的灵活应用.在一个思路清晰而且高效的程序中,必然有状态机的身影浮现. 比如说一个按键命令解析 ...

  7. 程序设计中的驼峰原则

    程序设计中的驼峰原则是程序中的变量和函数名的命名原则,比如变量username要写作userName或者UserName 规则:变量名或函数名的每一个单词的首字母要大写,第一个单词的字母可大写或者小写 ...

  8. createprocess重启程序_C++_VC程序设计中CreateProcess用法注意事项,对于windows程序设计来说,启动 - phpStudy...

    VC程序设计中CreateProcess用法注意事项 对于windows程序设计来说,启动一个进程有三种方法:WinExec,ShellExecute,CreateProcess.这里仅对Create ...

  9. ux设计中的各种地图_移动应用程序设计中的常见UX错误

    ux设计中的各种地图 Have you ever tried a new app, only to realize you have no idea how to use it? 您是否曾经尝试过一个 ...

最新文章

  1. Python语言程序设计之urllib.request抓取页面,网易公开课之《麻省理工学院公开课:算法导论》
  2. 【ASIC设计】ASIC设计流程
  3. Bootstrap模态框遮罩问题
  4. 刷光借呗额度之后用户突然去世,支付宝会怎么做?
  5. JavaScript 世界万物诞生记
  6. xampp安装后无法启动apache
  7. 计算机通信网填空题答案 与rs232接口相比,x.21接口,2020年自考计算机网络与通信问答题及答案:第三章...
  8. 程序员必读的10本经典书(含资源)建议收藏
  9. jar反编译工具 比jd-gui 功能更强大的 Luyten 查看jar源码, 解决jd反编译代码中break labelxxx 、 static初始块中出现return 等问题
  10. 三农数据(1996-2020)九:产值:谷物及其他作物、蔬菜园艺、水果、坚果、饮料
  11. 【黑马程序员pink老师前端】HTML
  12. 【HTML】input多行文本
  13. 优化elelment ui 的 dialog 样式
  14. 入选数据库顶会 VLDB:如何有效降低产品级内存数据库快照尾延迟?
  15. [tool] perforce
  16. python气象绘图技巧之箱线图
  17. 供应原位催化固体碳源制备石墨烯/铜复合材料 锂离子电池石墨烯导电剂 石墨烯/镍基复合材料 石墨烯复合膜 石墨烯-铝基纳米叠层复合材料 磺化、胺化氧化石墨烯(GO) 石墨烯基光催化复合材料 石墨烯纳米片
  18. 数字图像处理 图像变换
  19. Python骚操作:分析史上最好用的APP有哪些?
  20. JavaScript-ECMAScript编程

热门文章

  1. 通过深度学习实现安全帽佩戴的检测
  2. 疫情期间中国互联网公司亏损排行榜
  3. 记2019.7日照夏令营
  4. C生万物 | 操作符汇总大全【庖丁解牛,精细讲解】
  5. 回车换行符 crlf 那点事
  6. 使用vscode pull拉取报错: [rejected] (would clobber existing tag)
  7. [VB.NET]VB的vbFromUnicode、vbUnicode在vb.net中怎么使用
  8. web开发中cab文件 使用
  9. windows 下端口转发 端口映射工具 passport
  10. Linux下删除文件时出现rm: cannot remove ‘***/.user.ini’: Operation not permitted