Java设计模式——复合模式

Java设计模式之复合模式

复合模式:结合两个或者两个以上的模式,组合一个解决方案,解决一再发生的一般性问题。

MVC

MVC是典型的复合模式,我们主要了解MVC模式

使用到了:

  • 策略模式
  • 组合模式
  • 观察者模式

MVC:M(Model)模型、V(View)视图、C(Controller)控制器

  • Model:是程序主体,代表了业务数据和业务逻辑
  • View:是与用户交互的界面,显示数据、 接收输入,但不参与实际业务逻辑
  • Controler:接收用户输入,并解析反馈给 Model

设计模式的应用:

  • 策略模式

    视图控制器使用了策略模式,视图是一个对象,可以使用不同的策略,控制器提供策略。

  • 观察者模式

    模型实现了观察者模式,当模型状态改变时,通知控制器和视图更新。

  • 组合模式

    视图使用了组合模式,不论是Swing的组件还是Web的标签元素,都使用了组合模式。

Servlet

  • M(model):javaBean对象(将参数封装成JavaBean对象交给业务层处理)
  • V(view):jsp (向控制器提交数据,显示模型中的数据)
  • C(controller):servlet(根据视图提出的请求判断将请求交给那个模型处理,将处理后的结果交给对应的视图更新显示)

SpringMVC

SpringMVC:一种基于Java实现的MVC设计模型的请求驱动类型的轻量级框架

SpringMvc工作流程:

  1. 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制;
  2. DispatcherServlet——>HandlerMappingHandlerMapping将会把请求映射为HandlerExecutionChain对象(包含一个Handler处理器(页面控制器)对象、多个HandlerInterceptor拦截器)对象,通过这种策略模式,很容易添加新的映射策略;
  3. DispatcherServlet——>HandlerAdapterHandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器,即适配器设计模式的应用,从而很容易支持很多类型的处理器;
  4. HandlerAdapter——>处理器功能处理方法的调用,HandlerAdapter将会根据适配的结果调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名);
  5. ModelAndView的逻辑视图名——> ViewResolverViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;
  6. View——>渲染,View会根据传进来的Model模型数据进行渲染,此处的Model实际是一个Map数据结构,因此很容易支持其他视图技术;
  7. 返回控制权给DispatcherServlet,由DispatcherServlet返回响应给用户,到此一个流程结束

可以看到SpringmVC中还使用了:

  • 适配器模式

    DispatcherServlet——>HandlerAdapter


Java设计模式|策略模式

Java设计模式|观察者模式

Java设计模式|装饰者模式

Java设计模式|工厂模式

Java设计模式|命令模式

Java设计模式|适配器模式和外观模式

Java设计模式|模板方法模式

Java设计模式|迭代器模式和组合模式

Java设计模式|状态模式

Java设计模式|代理模式

Java设计模式|单例模式

Java设计模式|备忘录模式

Java设计模式|访问者模式

Java设计模式|复合模式

Java设计模式|桥接模式

Java设计模式|生成器模式

Java设计模式|享元模式/蝇量模式

Java设计模式|原型模式

Java设计模式|责任链模式

Java设计模式|中介者模式

  • 本文作者: dzou | 微信:17856530567
  • 本文链接: http://www.dzou.top/post/ecc07d1a.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
  • 并保留本声明和上方二维码。感谢您的阅读和支持!