好的,我还没有完全理解为什么AOP AspectJ有益的理念。我现在已经实现了日志记录和交易控制,以便从银行账户中提取资金。好吧,为什么这样做很好?我同样可以在同一个类文件中实现控件,我也存储了所有的银行业务方法(提款,存款,余额......等)。记录我可以为它创建一个新类,然后在BankAccount类中创建它的实例。
那么为什么我需要使用AOP,AspectJ呢?我还没有完全理解这个想法......
这是我的方面文件
public aspect SafeWithdrawal {
pointcut checking(BankAccount bk, float x): execution(* BankAccount.withdraw(float)) && target(bk) && args(x);
public static void BankAccount.LogChange(String str){
System.out.println(str);
}
before(BankAccount b, float x) : checking(b, x) {
if(b.getBalance() >= x) {
BankAccount.LogChange("Account changing. $" + x + " withdrawn...");
} else {
BankAccount.LogChange("Account does not have. $" + x + " to withdrawn...");
}
}
}
答案 0 :(得分:2)
我们的想法是,您的域名方法(如撤销)可以专注于您的业务流程,而日志,交易,分析等次要问题不会妨碍您。