弄浪的鱼

AOP 是面向切面编程的编程思想,AOP 解决日志、权限等于横切性问题,将这些问题与主业务逻辑分开,达到与主业务逻辑结构的目的。

当我们在编写程序的时候,需要完成一些与核心业务逻辑无关的功能。比如说日志功能、权限校验功能。这些操作与对象的核心功能无关,并且散落在各种业务逻辑之中。我们将日志、权限控制这样的功能抽离成独立的切面,并在程序中设置连接点使用这些功能,这就是 AOP 的思想。

AOP 概念是 OOP(Object Oriented Programming) 概念的补充,我们使用面向对象的思想将程序的操作单位从函数变成了对象。但是面向对象的思想,面对与对象的核心功能无关的操作时显得很无力。AOP 的思想就能很优雅地处理这些散落在业务代码中的功能。

总的来说 OOP 思想关注纵向的业务逻辑,AOP 思想关注横向的功能扩展。两者相辅相成,互为补充。