简述安卓框架发展史一(没有mvc,到流行的mvc框架样式)

                                                                   安卓刚开始流行时的框架

        安卓没有MVC的说法时,安卓框架又是什么样的呢?那么我就给大家介绍下本人刚开始做安卓时候,那些老程序圆是怎么样搭建框架的,这个框架在当时应该也是很流行的。
       
 
         这里只是简单的写了几个包作为框架的基础,框架是这样的,比如你有用户模块,那么你就要建一个用户包,用户包下有用户列表,某个用户的具体信息,添加用户等类,只要是关于用户操作的,比如用户列表适配器adapter,访问网络工具等都要再用户包里,整体框架就是一个包名就是一个需求功能模块。

          那么再看最原始的mvc框架,如图下:

      
     看上面图的做边红框,发现了吗,mvc模式将所有的acitivty统一放在了一起,而adapter里放所有的activity适配器,再看右边的红框,网络访问都是再acitivity中实现,这样刚开始写项目没觉得有什么问题,当一个acitivity有多个访问网络操作时,那么acitvity会出现上千行,那样是不是显得很臃肿呢。那么让mvc的activity变得更加便捷,人们又封装了如下流行的mvc框架:
      

           为了缓解activity的负担,activity响应事件发起请求网络,请求网络交给dao包处理,parse包将dao网络获取的json字符串解析成bean实体类,再交给acitivity去显示数据  这就是流行的mvc结构,有没有发现最原始的MVC中的VC都在activity中,才会让acitvity变得臃肿,现在将业务处理放在dao中就变得很轻盈了。先看如下图:

          上图红箭头是不是让你想起了xutils,vollery等访问网络结构很相似。下篇说说MVP与MVVM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring MVC 框架的工作执行流程如下: 1. 客户端发送请求到 DispatcherServlet。 2. DispatcherServlet 根据请求信息调用 HandlerMapping,解析出 HandlerExecutionChain 对象,其中包含 HandlerInterceptor 数组和 Controller 对象。 3. DispatcherServlet 根据 HandlerExecutionChain 中的 HandlerInterceptor 数组,按照顺序执行每个拦截器的 preHandle 方法,若有拦截器返回 false,则执行流程中止,返回错误信息。 4. DispatcherServlet 调用 Controller 的方法处理请求,返回 ModelAndView 对象。 5. DispatcherServlet 根据 ModelAndView 中的 ViewName,调用 ViewResolver 解析出 View 对象。 6. DispatcherServlet 调用 View 的 render 方法,将模型数据渲染到视图中。 7. DispatcherServlet 根据 HandlerExecutionChain 中的 HandlerInterceptor 数组,按照逆序执行每个拦截器的 postHandle 方法。 8. DispatcherServlet 返回响应给客户端。 下面是一个简单的 Spring MVC 示例: 1. 配置 DispatcherServlet 和 HandlerMapping: ```xml <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/config/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> ``` 2. 编写 Controller 类: ```java @Controller public class HelloController { @RequestMapping("/hello") public ModelAndView hello() { ModelAndView model = new ModelAndView("hello"); model.addObject("message", "Hello, world!"); return model; } } ``` 3. 编写 ViewResolver 类: ```xml <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/" /> <property name="suffix" value=".jsp" /> </bean> ``` 4. 编写 JSP 视图: ```jsp <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Hello</title> </head> <body> <h1>${message}</h1> </body> </html> ``` 这样,当客户端发送请求到 /hello 路径时,Spring MVC 框架会调用 HelloController 的 hello 方法处理请求,并返回 ModelAndView 对象,其中包含视图名称和模型数据。DispatcherServlet 会根据视图名称通过 ViewResolver 解析出 View 对象,并调用其 render 方法将模型数据渲染到视图中,最终返回响应给客户端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值