Model、ModelMap、Map有什么关系?深入底层剖析

Model、ModelMap、Map有什么关系?

  • 首先为形参赋值的对象是同一个对象,也就是BindingAwareModelMap

  • Model、ModelMap、Map有什么关系?深入底层剖析_第1张图片

  • Model是一个接口

  • 操作模型数据最顶层的接口

  • Model、ModelMap、Map有什么关系?深入底层剖析_第2张图片

  • Map就是JDK中的Map

  • ModelMap 继承了 LinkedHashMap

  • Model、ModelMap、Map有什么关系?深入底层剖析_第3张图片

  • LinkedHashMap又实现了Map接口!

  • 所以ModelMap是Map接口的实现类

  • 在来看BindingAwareModelMap
    Model、ModelMap、Map有什么关系?深入底层剖析_第4张图片

  • BindingAwareModelMap继承于ExtendedModelMap,所以观察ExtendedModelMap源码

    • ExtendedModelMap继承了ModelMap所以BingingAwareModel可以创建ModelMap
      Model、ModelMap、Map有什么关系?深入底层剖析_第5张图片

    • 同时又实现了Model接口,也可以实例化Model
      Model、ModelMap、Map有什么关系?深入底层剖析_第6张图片

    • ModelMap又继承了LinkedHashMap也就是实现了Map接口,还能实现Map对象
      Model、ModelMap、Map有什么关系?深入底层剖析_第7张图片

  • 总结

- public interface Model{}             //是一个接口
- public class ModelMap extends LinkedhashMap<String,Object>{}            //继承了LinkedHashMap
- public class ExtendedModelMap extends MOdelMap implements Model{}       //继承了ModelMap又实现了Model接口
  - public class BindingAwareModelMap{}  //这个类对应的子类,就可以去实例化ModelMap也可以实例化Model
    - //因为ModelMap继承了LinkedHashMap所以说,BindingAwareModelMap也可以实例化Map集合

你可能感兴趣的:(SpringMVC,java,mvc,javaee,spring)