2014-12-02 44 views
0

我已發現從維基百科http://en.wikipedia.org/wiki/Aspect-oriented_programmingAOP解決學術例如

一個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次。我怎麼能爲這3個特定的情況注入它,通常所有的AOP容器都有像方法執行之前或之後注入的選項。 以下是可以在IOS下使用的AOP容器的鏈接 https://github.com/tokorom/BlockInjection

謝謝!

+0

我無法幫助iOS開發,但是如果您願意,我可以在AspectJ中將示例代碼發佈到解構維基百科示例Java代碼的方面。儘管如此,如果你認爲接受這個答案是有效的,我只會勉強這麼做。我正在等待您的反饋。 – kriegaex 2014-12-05 08:09:22

回答

0

一,方面可以注入左右的方法。你也可以建議(包裝)已經由另一方面建議的方法。 在你的情況下,它將看起來像3方面:記錄方面(),授權方面(之前),積極的餘額方面(之前)。