浅议软件开发框架技术

办公百科2022-04-03 15:20:18佚名

浅议软件开发框架技术

  框架技术对于软件开发来说,意义重大,不仅可以简化开发流程,更利于后期维护。本文就软件开发中的框架技术进行分析,重点探讨struts、hibernate、spring以及分层架构内容。
  
  1、SSH框架技术
  
  SSH技术即struts、hibernate、spring技术的缩写,是当前比较流行的开源框架技术。
  
  1.1 struts技术
  
  Struts这个名字最初是金属架的意思。开发者希望通过Struts这个框架技术支持JSP、Servlet、Java,然后在Web系统项目中的使用这门技术。

  在apache的网站上发布Struts的第一个版本的时候,Struts技术只提供了一种将视图和业务逻辑分离的Web应用方案。当Struts这种Web应用技术出现的时候,每个开发人员都把它视为一种利器,把自己从繁忙的工作中解脱出来。所以在2001-2003这两年的时间里,大量IT公司在系统开发的过程中Struts技术作为框架。
  
  Struts的一大优点是它是开源软件[6]。Struts 本质是在Model2的基础上实现的一个MVC架构,采用的主要技术是Servlet、JSP和custom tag library用户自定义标记库[7]。Struts是运用MVC的体系编写的一个Web应用的一个框架, 可以说是一个传统MVC设计模式的一种改进类型。
  
  1.2 hibernate技术
  
  在Java世界里,Hibernate一直是最引人关注的一个话题。从Gavin King加入EJB3.0 EG,负责制订EJB3.0的持久层规范;到Gavin King非正式退出JDO EG,并且充满个人情绪的对JDO2.0规范进行攻击;到《Hibernate in Action》的发行;再后来到Hibernate3 Alpha的发布;最后再到JBoss 3.0 PR的发布。Hibernate在短短不到3年的时间内,从一个名不见经传的开源软件发展成到今天令业界瞩目的主流的O/R Mapping框架技术,在当前的Java持久层框架中,最流行的O/R Mapping产品分别是Hibernate,JDO以及TopLink。而Hibernate往往就是项目开发的首选, Hibernate的轻量级ORM模型逐步确立了在Java对象关系映射架构中的地位,而且它的许多设计还被Java EE标注组织吸纳成为EJB3.0规范的标准。
  
  1.3 spring技术
  
  Spring技术起源于2000年,它是Rod Johnson通过一些成功的商业项目构建起来的基础框架技术。在2002,Rod Johnson发布了《Expert One-on-One J2EE Design and Development》一书,并伴随着书的发布,同时提供了一个初步的开发框架技术,interface21开发包,interface21也就是书中阐述的内容的具体实现。后来,Rod Johnson 在interface21开发包的基础之上,进行了进一步的改造和扩充,使其发展为一个更加开放、清晰、全面、高效的开发框架——Spring。2003年2月,Spring框架技术正式成为一个开源项目,开始发布。Spring是一个解决了许多在J2EE开发中常见问题的强大框架。
  
  2、分层架构
  
  分层架构具有显著地特点,系统最高级别的目标功能位于最顶层,具体的涉及到跨领域的业务功能在中间层,系统配置以及系统环境位于底层。上一层调用下一层的数据,下一层为上一层提供服务。分层架构要遵循一定的原则:
  
  (1)可见度原则。每个系统的依赖关系只存在以同一级别的层次或者是下一个级别的子系统。
  
  (2)易变性原则。易变性原则也适合具体的层次相关联的,越往上的层次越靠近用户的需求,由于用户的需求是异变的,因此这一层次的抽象也往往最容易发生变化,而底层的数据库连接、环境配置、硬件驱动等等,这些相对来说不容易变化的,即使顶层的需求变化,这一部分是向上提供服务的,相对不易变化。
  
  (3)通用性原则。抽象模型元素一般放在放置在分层架构的底层。如果这些不涉及或者是不专注于具体的实现,则可以将这邪恶放在中间层次;
  
  (4)层数。对已通常的系统来说,三层是比较普遍的,对已特别复杂的系统,要加入层次,随着层数的增加,复杂性也会增加。
  
  使用分层架构,有如下几方面的优点:

  
  (1)每一层的设计只关注本层次。在进行系统开发的时候,业务功能的层次只需负责具体需求的实现,数据库持久的层次只关注与数据库的连接与管理,不需要对其他层次进行考虑。
  
  (2)开发更加方便。在系统开发中,很可能会遇到功能类似的系统,那么实现系统时这两个功能的实现会很容易,只需将涉及到功能的名字和变量进行替换就可以完成系统功能。
  
  (3)降低耦合。分层可以降低系统之间的依赖。例如,web表示层只需要关注与怎么对外提供服务,至于中间的业务逻辑层是怎样流转的,数据库持久层怎么进行数据提供,都不需要关心,这样充分降低了系统之间的耦合。
  
  (4)代码复用。某一层次的实现,可以像其他很多层次提供服务。
  
  (5)可以使代码编写更加整洁,利于标准化工作。
  
  分层架构也存在有一些弊端和缺点:
  

  (1)数据级联。封层架构可能会导致修改代码的时候,对某一个变量的修改,可能涉及到所有的关系到这个变量的层次都需要进行修改。
  
  (2)分层架构的层次要适度。对于系统来说,并不是越多的层次对系统越好,系统越多,系统开销越大,系统负担也越大,系统开发难度也越大,对已普通的应用性系统来说,如果需求不是特别多,数据量非海量型的,那么三层架构已经可以实现,对已数据量大,业务需求复杂的系统,可以分为4-5个层次,对已5层以上的分层不提倡,这样分层的话,会使本来先对比较简单的工作变得复杂,反而会不利于系统的开发和后期的维护工作。
  
  通过以上几点分析,分层对系统来说是有利有弊的,适当的分层架构对系统很重要,要进行权衡利弊,并不是越多的层次越好,分层的具体要根据实际的需求进行联系,进行细致的分析和考虑,这样才能使开发更有效率,维护也更加方便。

本文标签: ,框架  ,缺点  ,标签  ,简介  

相关推荐

猜你喜欢

大家正在看