我在Wikipedia http://en.wikipedia.org/wiki/Aspect-oriented_programming
中找到了一个AOP示例这是有趣的部分:
void transfer(Account fromAcc, Account toAcc, int amount, User user, Logger logger)
throws Exception
{
logger.info("Transferring money…");
if (!isUserAuthorised(user, fromAcc)) {
logger.info("User has no permission.");
throw new UnauthorisedUserException();
}
if (fromAcc.getBalance() < amount) {
logger.info("Insufficient funds.");
throw new InsufficientFundsException();
}
fromAcc.withdraw(amount);
toAcc.deposit(amount);
database.commitChanges(); // Atomic operation.
logger.info("Transaction successful.");
}
记录器在方法中出现3次。如果所有AOP容器通常在方法执行之前或之后都有注入选项,我怎么能为这3个特定情况注入它。 以下是可在IOS下使用的AOP容器的链接 https://github.com/tokorom/BlockInjection
谢谢!
答案 0 :(得分:0)
首先,方法可以注入方法。您也可以建议(包装)已经由另一方面建议的方法。 在您的情况下,它将看起来像3个方面:日志方面(围绕),授权方面(之前),正平衡方面(之前)。