@[TOC]AOP应用场景
#简单介绍下AOP即动态代理模式
关于代理模式借用别人的说法就是一个中介,例如我要买房这个事件中只负责交钱给中介和最后从中介拿到符合我要求的房,买房的中间过程、需要办理的各种手续中介代理我去办理。我做过的一个多用户身份多层级项目,注册不同用户身份有相同操作即添加用户基本信息和用户身份,这儿我是把用户操作封装为一个通用类,然后不用的用户身份注册时都有对应的一个子类继承用户父类,子类中注册用户方法调用了父类的用户注册方法来实现添加用户基本信息的操作,然后不用身份的子类中做差异化的操作。这儿就是一个简单的静态代理模式。
上面例子中所有的方法都是分别子类方法中显式调用父类对应的方法,操作比较零散。那么有没有方法设置一个规则让符合规则的动作都会动态的在差异化操作前先调用某封装类的特定方法呢,这就是动态代理,即AOP。 之前不知道动态代理的应用场景,感觉在业务操作中不可能有某个类的方法可以被动态的用到子类的所有或大多数操作中去,因为业务的操作都是个性,并非共性的,直到在学习hyperf框架时介绍到aop应用场景才恍然大悟,介绍了aop的应用场景如下:参数校验 日志 无侵入买点 安全控制 性能统计 事务处理 异常处理 缓存 无侵入监控 资源池 连接池管理,动态代理并非用于具体的业务操作,而是从整体层面上去用的东西。
简单记录下 理解浅薄处还望斧正 _