老李分享:钩子
2015-11-02 11:55
204 查看
老李分享:钩子
上次说过QTP实现录制原理,说起HOOK,熟悉windows开发的人应该比较熟悉,例如鼠标钩子、键盘钩子等。用简单的语言描述就是在正常处理流程中安置某个钩子,当执行到安置钩子的地方就将进入指定的钩子函数进行处理,待处理完再返回原流程继续处理,当然也可以直接停止原流程的执行。所以说钩子是windows消息处理的一个重要的机制,专门用于监控指定的某些事件消息。如果往更高层更抽象的角度来看,钩子其实是一种机制是一种思想,它的核心思想是在整个复杂的处理流程的所有关键点都触发响应的事件消息,假如添加了钩子则会调用钩子函数,函数中可根据传递过来的事件消息判断执行不同的逻辑。它就好像透明地让程序挂上额外的处理,且处理的逻辑可推迟到后面由开发者自定义。
为什么要使用钩子机制?可以这样认为,在一个庞大的系统内,某些基本的处理流程是相对固定的,且涉及到系统内部逻辑不应该允许外部去修改它,但又要考虑到系统的扩展性,必须预留某些接口让开发者在不改变系统内部基本处理流程的情况下可以自定义一些额外的处理逻辑。于是引入钩子机制,按照钩子思想最后实现的效果相当是在一个允许在适当位置嵌入自定义的代码,此机制保证了系统内部不受外界修改同时又预留足够的扩展空间。
相关文章推荐
- sed简单用法
- jquery或者普通url清除浏览器缓存的方法
- Quartz2D——屏幕截图,背景平铺
- lua闭包函数
- 老李分享:性能优化的境界
- js 复制 功能
- Netscape HTTP Cookie File php程序中用curl保存的cookie文件格式
- Android 登录界面软键盘弹出以后界面上移
- 缓存淘汰算法--LRU算法
- iis7针对不同域名配置不同运行权限,所有共用web.config产生的问题均可以修改根配置文件解决
- 电路板的爬电距离和电气间隙是怎么规定的?
- (转)使用Migrations更新数据库结构(Code First )
- 服务器损坏数据如何恢复
- (转)FileUtil.java 工具类
- Adapter适配器 final int Id 导致选中的Item不在当前界面
- hql日期类型
- js实现文件上传表单域美化特效
- win10怎么找回win7/8中的照片查看器?
- 项目问题总结3:MyEclipse导入项目报错-"The import javax.servlet cannot be resolved"
- 今日学习札记——C++程序设计1(11-02)