[java学习]关于框架的基本知识
最近要写一个javaweb的简单课设:企业职工人事在线管理信息系统的设计与实现
在打开jee准备写的时候,突然想起来好像javaweb中有框架一说,可以模块化的实现许多功能。
但是在课堂上老师并没有教相关的知识(。。。),所以只有自己来学习一下。
同时记录一下自己的学习过程加深印象。
在学习之前,先提出问题:
1.什么是框架
2.框架的作用
3.java中有哪些框架
4.为什么要用框架
1.什么是框架
框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。
框架的概念最早起源于Smalltalk环境,其中最著名的框架是Smalltalk 80的用户界面框架MVC(Model -View-Controller)。
框架目前还没有统一的定义,其中Ralph Johnson所给出的定义基本上为大多数研究人员所接受:
一个框架是一个可复用设计,它是由一组抽象类及其实例间协作关系来表达的 [Johnson 98]。
这个定义是从框架内涵的角度来定义框架的,当然也可以从框架用途的角度来给出框架的定义:
一个框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现[Bosch 97]。
从以上两个定义可以看出,框架是对特定应用领域中的应用系统的部分设计和实现,它定义了一类应用系统(或子系统)的整体结构。框架将应用系统划分为类和对象,定义类和对象的责任,类和对象如何互相协作,以及对象之间的控制线程。这些共有的设计因素由框架预先定义,应用开发人员只须关注于特定的应用系统特有部分。框架刻画了其应用领域所共有的设计决策,所以说框架着重于设计复用,尽管框架中可能包含用某种程序设计语言实现的具体类。
用自己的理解来说,将完成一个程序看作是一个组装电脑的过程,我们原先进行无框架的编程,就像是买来各种元器件(显卡、主板、cpu、etc.)然后在自己组装起来进行使用,而使用框架的编程,就像是我们买来整机,只需要点亮、按照自己需要安装软件即可。
2.框架的作用(框架解决的问题)
框架要解决的最重要的一个问题是技术整合的问题,在J2EE的 框架中,有着各种各样的技术,不同的软件企业需要从J2EE中选择不同的技术,这就使得软件企业最终的应用依赖于这些技术,技术自身的复杂性和技术的风险 性将会直接对应用造成冲击。而应用是软件企业的核心,是竞争力的关键所在,因此应该将应用自身的设计和具体的实现技术解耦。这样,软件企业的研发将集中在应用的设计上,而不是具体的技术实现,技术实现是应用的底层支撑,它不应该直接对应用产生影响。
按我的理解,框架的作用就是节约人力以及精力。在许多大型开发中,其底层代码其实差异并不大,功能也大抵相同,将底层代码整合成框架,可以节约极大的时间以及精力,让程序员可以更专注于实现各种其特有的应用。框架能够在实现底层功能的同时,提供各种各样的接口,我们只需要接入所需接口,即可完成某一功能的实现,大大缩短开发周期。
查资料的时候在csdn上看到一句话,感觉言简意赅的说明了框架的作用:

- 领域内的软件结构一致性好;
- 建立更加开放的系统;
- 重用代码大大增加,软件生产效率和质量也得到了提高;
- 软件设计人员要专注于对领域的了解,使需求分析更充分;
- 存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;
- 允许采用快速原型技术;
- 有利于在一个项目内多人协同工作;
- 大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。
以上内容转自https://blog.csdn.net/sammy_chan/article/details/1895207 什么是框架
写在最后:今天这个小随笔是在实训空闲时间,查找、总结而来,主要让自己对框架有了一个大体上的认知,后续还是需要对各类框架进行详细的学习,在课程设计的时候如果允许还是希望利用框架进行开发,毕竟在查询资料后,发现框架是一个非常省时省力的“整机”,可以在编写代码的时候帮我们节省非常多的时间以及精力。学无止境!感谢google!