我开始对Java中的Aspects感兴趣,但是我在理解Aspects的好处和用法方面遇到了困难。我以前在C++中使用过Macros。我想Aspects也是以类似的方式工作的。我的意思是“只要你看到X,就插入代码Y”。也许我不应该尝试使用我的Macro知识来学习Aspects。
你能给我一些比较Aspects和Macros的具体例子,以便更好地理解这一点吗?
发布于 2017-03-08 18:19:44
宏是静态代码注入,然后作为一个整体进行编译,其中方面可以是静态和动态的,你可以在代码中添加插入代码的切入点,更重要的是,在你的方法中添加逻辑,决定是否继续。例如,它用于日志记录、安全性、事务管理……
发布于 2018-01-30 11:07:24
对于宏,您必须在源代码中指明您希望应用宏的每个位置。
通过在单独的地方定义方面,所有应该更改的地方。
因此,如果您想要添加/删除一个方面,您只需要在现场更改,但如果您想要添加/删除宏,您必须更改使用宏的每个位置。
另一方面,宏更强大,可以更自由地使用。
https://stackoverflow.com/questions/42667997
复制相似问题