我想使用方面
将日志记录代码与我的域逻辑分开。但是这些方面应该进行编译时编织而不是创建代理对象。
除了 AspectJ
之外还有哪些选项?
最佳答案
嗯,处理横向问题的另一种方法(如日志记录)是使用命令模式。这样,您可以使用 ServiceDelegate 来控制所有命令运行,并在此处控制每个横向关注点。
例如,每个命令都必须继承自定义 runCommand
方法的抽象类。然后调用 ServiceDelegate
以这种方式运行命令:
//take control of pre conditions
if(command.isAuthEnabled)
//do what you want
command.runComman();
//take control of post conditions
if(command.isLogEnabled())
//do what you want
也许这听起来很奇怪,但它是使用方面的另一种选择。它没有更好或更坏,它是不同的,这将是方面更适合的场景,以及命令会更好的其他场景。
关于java - 使用方面记录域对象(编译时编织),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32794652/