JavaScript设计模式
2015-08-25 13:44
525 查看
一、观察者设计模式
定义:观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变的时候,观察者就会观察到这样的变化,并且做出相应的响应
观察者:发布消息通知订阅者内容有更新 、撤销订阅者
订阅者:订阅观察者当收到观察者发布的消息后,用相应的方法进行更新。
实现:关键是要建立一个二元数组topics[]里面放观察者对象(用于遍历数组发布消息),然后得到这个对象后再添加这个对象的订阅者(用于为数组添加对象)。
例如:我有一个南方日报的 观察者对象,topics["南方日报"],那么南方日报的订阅者有我,那么topics["南方日报"].push({“我”,function(){我知道有更新了}})
二、动态代理设计模式
首先得理解反射机制
1、泛型的反射
例如class A extends B<T>{},获取T
方法:getGenericSuperClass()得到父类的类型,然后用ParameterizedType判断此类是否带泛型,然后用ParameterizedType.getActualTypeArguments()来获取当前类型的泛型数组。
2、动态代理
未续待完......
---------------------------------------------------------------------------------------------------------
SpringMvc框架原理
1、HTTP请求--->DispatcheServelet(servlet.xml)--->HandlerMapping--->Controller--->Service--->ModelAndView--->DispatcheServlet--->(JSP,JSTL,HTML,PDF)
2、DispatcheServlet是SpringMvc的核心,本质是HttpServlet,通过在web.xml配置servletMapping来处理request请求,当DistpatcheServlet接收到request时,调用servlet-*.xml来寻找相应的HandlerMapping,然后通过HandlerMapping找到Controller,并找到对应的方法调用Service实现业务逻辑,返回ModelAndView
定义:观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变的时候,观察者就会观察到这样的变化,并且做出相应的响应
观察者:发布消息通知订阅者内容有更新 、撤销订阅者
订阅者:订阅观察者当收到观察者发布的消息后,用相应的方法进行更新。
实现:关键是要建立一个二元数组topics[]里面放观察者对象(用于遍历数组发布消息),然后得到这个对象后再添加这个对象的订阅者(用于为数组添加对象)。
例如:我有一个南方日报的 观察者对象,topics["南方日报"],那么南方日报的订阅者有我,那么topics["南方日报"].push({“我”,function(){我知道有更新了}})
二、动态代理设计模式
首先得理解反射机制
1、泛型的反射
例如class A extends B<T>{},获取T
方法:getGenericSuperClass()得到父类的类型,然后用ParameterizedType判断此类是否带泛型,然后用ParameterizedType.getActualTypeArguments()来获取当前类型的泛型数组。
2、动态代理
未续待完......
---------------------------------------------------------------------------------------------------------
SpringMvc框架原理
1、HTTP请求--->DispatcheServelet(servlet.xml)--->HandlerMapping--->Controller--->Service--->ModelAndView--->DispatcheServlet--->(JSP,JSTL,HTML,PDF)
2、DispatcheServlet是SpringMvc的核心,本质是HttpServlet,通过在web.xml配置servletMapping来处理request请求,当DistpatcheServlet接收到request时,调用servlet-*.xml来寻找相应的HandlerMapping,然后通过HandlerMapping找到Controller,并找到对应的方法调用Service实现业务逻辑,返回ModelAndView
相关文章推荐
- extjs 中formPanel提交到action后返回json数据到ext中,但是ext页面不进入sucess也不进入failure
- javascript于"return obj === void 0"这样的书面理由和优势
- JSP中的两种注释方式
- json字符串转成字典
- jackJson的基本用法2___map-json 与 json-map
- jackJson的基本用法1___obj-json 与 json-obj
- js方法格式化数字,加入千分符,并可以指定小数点位数
- wg_listToTree小插件 用 javascript 将List数组转换为Tree
- js常见的一些错误
- 【转】理解与使用Javascript中的回调函数
- 基于JavaScript分析property 和 attribute
- 【JavaScript】--原型
- iframe中子父类窗口调用JS的方法及注意事项
- JS学习之事件冒泡
- 问题:JsonConvert;结果:JSON详解
- JavaScript+CSS实现仿天猫侧边网页菜单效果
- jsoi2008最大数bzoj1012
- 奔跑吧,我的JavaScript(2)
- JS使用键盘左右箭头进行翻页
- js常用正则表达式