转载

从实例中理解框架

目前,各种开发框架非常流行,那么,什么是框架 (Framework) ?框架是如何产生的?为什么要使用框架,以及使用框架能给我们的开发带来什么样的好处呢?

下面就以我们熟悉的 web 框架为基础来加深对框架的理解。

在不使用 Struts 或者 SpringMVC web 层框架时,一直是由 Servlet 完成业务逻辑的实现,但是,随着 Servlet 的增多, web.xml 的配置会不断的膨胀,从而变得难以维护。针对这一问题, web 框架提出的方案是:提炼一个核心的 Servlet 覆盖对所有 http 请求的处理。 Spring MVC 中是 DispatcherServlet Struts2 是一个 FilterDispatcher 。 这样, web.xml 中只需要对核心控制器进行配置就可以了 , 代码变得简洁且固定了。

提炼出了核心控制器 , 还需要考虑后面的事情 , 就是怎样将不同的 http 请求分发到不同的 action/controller对象上去进行业务处理,怎样将对应的处理结果返回到客户端。这一系列的逻辑流程由谁控制,又由谁负责具体实现,这些实现又如何关联到一起?

我们使用框架就是为了不再自己控制这些公共的问题,而将更多的精力放在业务的处理上,那么,这些事情自然是由框架来完成了。

SpringMVC 为例,核心控制器 DispatcherServlet 将从 http 请求开始到输出返回结果这期间的每一个处理步骤分派到不同的组件中进行处理, HandlerMaping 负责将一个 url 指定到一个对应的 controller 上, HandlerMapping 负责指定执行  controller 中的哪个方法, ViewResolver 根据 controller 中返回的 viewName ,结合配置文件信息,创建出合适类型的  view 对象,而 DispatcherServlet 这个类本身负责初始化需要的组件以及对组件方法的调用。可以理解为核心控制器规范处理流程,各个组件实现处理流程。

Struts SpringMVC 框架还给我们提供了收集表单数据,完成数据类型转换,表单验证、异常处理等功能,这这细节也为开发人员提供了很大的便利。

从上面通俗的描述,我们应该可以理解到:

框架是为了解决在某个领域开发中所碰到的困境,包含了一系列的最佳实践,作用是解决某个领域的问题。     

框架是整个或部分系统的可重用设计 , 表现为一组抽象组件及组件实例之间交互的方法 .

      框架是包含了一些通用功能的半成品,开发人员可以在框架的基础上进行二次开发。

原文  http://www.cnblogs.com/chy2055/p/5123917.html
正文到此结束
Loading...