【简记】Java Web 内幕——SpringMVC框架设计与模式

来源:互联网 发布:百度关键词优化多少钱 编辑:程序博客网 时间:2024/06/04 23:21

为什么需要框架

一般做框架的想法是出于以下几种考虑的。

  • 目前现有的解决方案己经不能有效解决出现的问题,需要一个全新的框架和技术理论来处理。
  • 现在的问题大部分都能解决,但是对于特定的问题还没有方便的处理方式,这是大部分人遇到的情况,我们现在很少遇到不能解决的问题,只是需要一个更好的或者更方便的解决特定问题的方法。

现在大部分开源框架基本上都可以解决很多问题,也就是说在一般情况下根本就不需要自己再设计框架了,设计一个框架也不是每个人或者企业都能做的。现在有些开源框架的扩展性非常好,可以根据需要自己扩展,这类框架本身就是具有通用性的。


需要怎样的框架

这个框架可以让开发者做尽量少的与框架本身相关的事情,将所有的精力都用来关注业务逻辑,最好很多重复的代码能够自动生成,框架本身能够提供一个能运行的环境。


基本的框架设计原则

  • OCP (开闭原则) : 对扩展开发,对修改关闭。
  • LSP (里氏代换原则) : 凡是基类能使用的地方, 子类也一定能使用。
  • DlP ( 依赖倒转原则) : 要依赖于抽象,不要依赖于具体。
  • ISP (接口隔离):接口尽量单一,只代表一个角色。
  • CARP (合成/聚合复用) : 尽量使用合成/聚合复用,尽量不要使用继承。
  • LOD ( 迪米特原则) : 一个对象应当对其他对象的细节有尽可能少的了解。

设计模式——模板模式

这里写图片描述

模板模式在Spring MVC 中使用得非常多,如HandlerMapping 的设计。HandlerMapping有一个抽象类AbstractHandlerMapping ,在这个抽象类中定义了一个完整的HandlerMapping的初始化和获取Handler对象的主体流程,但是有一个抽象方法getHandlerlnternal(HttpServletRequest request) 留给了子类去实现,只要子类实现了这个方法,那么整个getHandler 的流程就完成了,这种方式就是典型的由抽象父类定义主体执行流程,而由子
类去实现这个流程中的单个步骤的模式,这就是模板模式的应用。

View 只定义了接口方法, AbstractView 类实现了在View 中定义的所有方法,并留有一个抽象方法renderMergedOutputModel 给子类去实现。而AbstractJasperReportsView 和AbstractTemplateView 抽象类又进一步实现了AbstractView 的抽象方法renderMergedOutputModel , 井分别进一步细化出renderReport 抽象方法和renderMergedTemplateModel 给子类去进一步实现。越往下面的子类需要实现的功能越少,整个模板己经建立,所以模板模式能加快整个程序的开发进度。

阅读全文
0 0
原创粉丝点击