AOP(Aspect Oriented Programming)和AOC(Aspect Oriented Computing)是两个不同的概念。
AOP是一种编程范式,它的主要思想是将系统中的功能模块化,并将这些功能模块进行横向切分,从而实现代码的重用。AOP的基本原理是利用切面(Aspect)来修改类的行为,实现横向切分。具体来说,AOP通过定义切点(Pointcut)和通知(Advice)来描述切面,然后利用切面对类的方法进行增强。
AOC是一种计算模型,它的主要思想是将系统中的各个模块分离,并在这些模块上定义横切关注点(Cross-cutting Concern),从而实现代码的重用。具体来说,AOC通过定义切面(Aspect)和切点(Pointcut)来描述横切关注点,然后利用切面对系统进行横切命令。
简而言之,AOP是一种编程范式,主要关注如何将程序代码进行横向切割,提高代码的可重用性;而AOC则是一种计算模型,主要关注如何在系统中进行横向切分,提高系统的可维护性和可扩展性。