hook杂思-面向函数编程
hook:方法拦截
以函数单元为编程对象;
在编译时或运行时进行函数单元的替代、修改、功能添加操作;
所有的操作都不是在原始编码时完成的;
函数单元作为参量、操作对象、编码对象存在于机制中;
机制:
1、回掉注册机制;
2、方法替换机制;
3、动态代理机制;
动态代理:
面向对象—对象方法拦截(一组);
hook:
单个函数的拦截、信息提取;
动态代理:
类的所有函数的拦截转发;
aop模型:
业务逻辑+交叉逻辑+织入机制
面向切面编程—面向现有功能编程—面向修改编程—面向操作编程—面向hook编程—面向交叉逻辑编程
在不修改现有功能的情况下,改变现有功能的实现:
在功能函数的前后插入功能或替换功能函数;
java:静态语言;
基于dsl和注解的动态代理机制;
oc:
基于isa+方法替换的动态语言机制;
目标不同:
对现有逻辑的修改和添加:
热修复:jspatch、
交叉逻辑植入;
我思故我在