软件培训网

欢迎访问软件培训网!招生咨询电话与微信:15225191462(周老师)
软件培训网,专业解决学IT疑难杂症!

首页 > 软件测试/ 正文

软件质量之路:建立核心框架

2013-01-06 06:00:51
  什么是框架  在软件开发中出现过各种各样的框架,开源软件的兴起,使得各种各样的框架纷纷出现,例如,Apache组织下就拥有诸多的框架类产品,包括国内很熟悉的struts。那么,什么是框架呢?  在设计模式中,Gamma等人为框架给出了一个定义:“框架就是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计。”[Gamma 94,p.26]  框架是针对特定的问题领域的,例如,struts是一个针对Web开发的框架。  框架包括了一组的抽象概念。这些抽象概念来源于问题领域。例如,struts是基于MVC模式进行设计的,所以它必须为model、view、control建立抽象概念。  框架使得这些抽象概念相互协作,并提供了一种扩展的形式,以实现重用。这是框架的具体工作。框架在抽象概念上进行工作,定义抽象概念之间的协作方式。框架和普通软件或是类库的区别就在于,用户通过扩展框架来重用该框架。这些扩展点的设计称为框架设计的核心。例如,在struts1.0中,采用的是类继承的扩展方式(对Action进行扩展)。  框架实例  spring(http://www.springframework.org)是一个开源的框架,这个框架定位于一个整体的基于J2EE的应用型框架。他的定位哲学是不重新发明轮子。例如,他提供了数据库访问机制,但是他的数据访问机制是基于JDBC、Hibernate和JDO的。重用和再包装的思路充满了整个spring框架。国内的软件产业大都定位在系统集成,这种思路非常适合于国内的软件组织。使用这个例子的目的也在于此。  框架应该尽可能使用现有的技术。而不要重复投资。  JDBC是一个非常基础的数据存取API。它封装了对关系型数据库的访问,但是应该承认,JDBC仍然属于层次较低的API,所以在使用的时候,我们不得不编写大量的代码,来完成一件简单的工作:PreparedStatement st = db.prepareStatement("SELECT USER.NAME FROM USER");ResultSet rs = st.executeQuery();while(rs.next()) {System.out.println(rs.getString(1));}rs.close();st.close();  看到有多麻烦了吧,但是请注意,以上的代码存在严重的缺陷,因为没有任何处理异常的代码,加入异常代码意味着我们还需要增加一些代码,这种重复的劳动使得程序员的工作像是傻瓜一样。记得我们在代码自动化中的自动化原则吗?对于重复性的劳动,我们应该使其自动化。  如何进行呢?注意,我们发现,除了SQL语句的不同以及记录集的处理不同以外,大部分的查询代码都没有太大的差别,所以我们的目标就是抽取共同的部分,而把特定的部分留给开发人员自己。  那么,一个框架该做些什么呢?回忆框架的定义,框架就是定义一组的抽象体,及其抽象体之间的协作,并提供扩展。在JDBC中,抽象体有Datasource、Connection 、PreparedStatement、ResultSet、Statement、SQLException。所以,建立框架的第一步就是分析这些抽象体的行为,哪些是共同的,哪些是专有的。使用spring框架,最终的JDBC客户端代码是这样的:JdbcTemplate template = new JdbcTemplate(dataSource);final List names = new LinkedList();template.query("SELECT USER.NAME FROM USER",new RowCallbackHandler() {public void processRow(ResultSet rs) throws SQLException {names.add(rs.getString(1));}});

Tags:郑州java软件培训,郑州java网站开发培训,零基础学java难么,郑州黑马java培训,郑州千峰java培训,郑州蓝鸥java培训

搜索
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
热门标签
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
软件培训学校哪家好,就来软件培训网咨询
  • QQ交谈