[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上看到一句话,感觉言简意赅的说明了框架的作用:

可以帮助我们减少代码冗余,提高运行速度,便于维护,规范编程

 

 

 

3.java中有哪些框架
  在主流开发中,有三大框架:Hibernate、Struts、Spring,另外还有Mybatis等小众框架。
  在单个开发中,也可以同时使用多个框架进行开发,就是我们常说的:
  SSH:Struts + Spring + Hibernate
  SSM:Spring + Spring MVC + Mybatis
  以及:

 

  关于框架的具体使用,之后再学习,今天主要了解框架的基本概念。
 
 
4.为什么要用框架
  框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成。 
  由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。 
  框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过 组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就插入框架中,构件设计者就能重用构架的设计。 
  框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。 
  采用框架技术进行软件开发的主要特点包括: 
  •   领域内的软件结构一致性好; 
  •   建立更加开放的系统; 
  •   重用代码大大增加,软件生产效率和质量也得到了提高; 
  •   软件设计人员要专注于对领域的了解,使需求分析更充分; 
  •   存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程; 
  •   允许采用快速原型技术; 
  •   有利于在一个项目内多人协同工作; 
  •   大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。 

                                              以上内容转自https://blog.csdn.net/sammy_chan/article/details/1895207 什么是框架

  

 

写在最后:今天这个小随笔是在实训空闲时间,查找、总结而来,主要让自己对框架有了一个大体上的认知,后续还是需要对各类框架进行详细的学习,在课程设计的时候如果允许还是希望利用框架进行开发,毕竟在查询资料后,发现框架是一个非常省时省力的“整机”,可以在编写代码的时候帮我们节省非常多的时间以及精力。学无止境!感谢google!

posted @ 2018-04-15 11:33  怪小兽  阅读(239)  评论(0)    收藏  举报