Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的方面和宏之间有什么区别_Java_Macros_Aspect - Fatal编程技术网

Java中的方面和宏之间有什么区别

Java中的方面和宏之间有什么区别,java,macros,aspect,Java,Macros,Aspect,我开始对Java中的Aspects感兴趣,但是我很难理解Aspects的好处和用法。我以前在C++中使用过宏>代码>。我想,方面也以类似的方式工作。我的意思是“只要你看到X,就插入代码Y”。也许我不应该尝试使用我的宏知识来学习方面 你能给我一些比较方面和宏的具体例子来更好地理解这一点吗?宏是静态代码注入的,然后作为一个整体进行编译,其中方面可以是静态的,也可以是动态的,你可以在代码中插入代码的地方添加切入点,在方法中添加逻辑,决定是否继续。例如,它用于日志记录、安全性、事务管理…宏,您必须在源代

我开始对Java中的
Aspects
感兴趣,但是我很难理解
Aspects
的好处和用法。我以前在C++中使用过<代码>宏>代码>。我想,
方面
也以类似的方式工作。我的意思是“只要你看到X,就插入代码Y”。也许我不应该尝试使用我的
知识来学习
方面


你能给我一些比较
方面
的具体例子来更好地理解这一点吗?

宏是静态代码注入的,然后作为一个整体进行编译,其中方面可以是静态的,也可以是动态的,你可以在代码中插入代码的地方添加切入点,在方法中添加逻辑,决定是否继续。例如,它用于日志记录、安全性、事务管理…

宏,您必须在源代码中指出要应用宏的每个位置

对于在单独位置定义的方面,所有应更改的位置

因此,如果你想添加/删除一个方面,你只需要当场更改,但是如果你想添加/删除一个宏,你必须更改使用宏的每个位置

另一方面,宏功能更强大,可以更自由地使用