Model、ModelMap、Map有什么关系?
-
首先为形参赋值的对象是同一个对象,也就是BindingAwareModelMap
-
-
Model是一个接口
-
操作模型数据最顶层的接口
-
-
Map就是JDK中的Map
-
ModelMap 继承了 LinkedHashMap<String,Object>
-
-
LinkedHashMap又实现了Map接口!
-
所以ModelMap是Map接口的实现类
-
在来看BindingAwareModelMap
-
BindingAwareModelMap继承于ExtendedModelMap,所以观察ExtendedModelMap源码
-
ExtendedModelMap继承了ModelMap所以BingingAwareModel可以创建ModelMap
-
同时又实现了Model接口,也可以实例化Model
-
ModelMap又继承了LinkedHashMap也就是实现了Map接口,还能实现Map对象
-
-
总结
- 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集合