面向切面编程
- 什么是 AOP,面向切面编程是一种通过横向关注点分离来增强代码模块性的方法,他能够在不修改业务主体代码的情况下,对它添加额外的行为。
-AOP 的实现- 编译期间的静态织入
- 运行期间的动态代理:依靠预先创建或者运行时创建的代理类来完成切面功能。
- 控制反转 IoC
- 控制反转,是指把原有的控制方向调转过来的方式。比如 Java 的正常流程是先 new 一个对象,然后开始操作对象。而 IoC 不关心如何对象的创建、匹配、查找,只需要使用对象就可以了。
- 面向切面编程的核心:为了尽可能的保证主流程的存粹和简洁。
- IoC 有两种方式
- 依赖查找
- 依赖注入
- IoC 的好处
- 资源统一配置管理
- 业务代码不再包含依赖资源的访问逻辑,因为资源访问和业务流程的代码解耦开了。
思考
看了两遍文章,还是理解的不透彻。大胆猜测下,其实是一种通过约定的方式,将业务主流程和其他通用流程分离开来,或者说切开。而静态织入、动态代理、亦或是控制反转,都是为了解决如何切开及如何结合的技术方案。
就像评论区说的,前端生命周期钩子,属于约定的东西,我们不知道里面是什么,即将它们与主逻辑切开了。而在项目运行的时候,前端框架帮我们把这块代码结合起来,让程序正常运行。
网友评论