Aspektově orientované programování: Porovnání verzí
Smazaný obsah Přidaný obsah
{{Programovací paradigmata}} |
m Robot: -zastaralá značka HTML |
||
Řádek 27:
Například si představme bankovní aplikaci s koncepčně velmi jednoduchou metodou na převod částky z jednoho účtu na druhý:<ref>Poznámka: Pro ukázky v tomto článku je použita syntaxe jazyka [[Java (programovací jazyk)|Java]].</ref>
<
void transfer(Account fromAcc, Account toAcc, int amount) throws Exception {
if (fromAcc.getBalance() < amount)
Řádek 35:
toAcc.deposit(amount);
}
</syntaxhighlight>
Řádek 41:
Zjednodušená verze s těmito novými koncerny by mohla vypadat nějak takto:
<
void transfer(Account fromAcc, Account toAcc, int amount, User user, Logger logger) throws Exception {
logger.info("Transferring money…");
Řádek 62:
logger.info("Transaction successful.");
}
</syntaxhighlight>
Kód již není tak jednoduchý a elegantní, jelikož jsme přidali různé další koncerny k základní funkcionalitě (někdy zvané ''koncern obchodní logiky''). Transakce, zabezpečení a logování jsou příklady ''průřezových problémů''.
Řádek 69:
Takže takto se pro výše uvedený příklad provádí záznam v aspektu:
<
aspect Logger {
void Bank.transfer(Account fromAcc, Account toAcc, int amount, User user, Logger logger) {
Řádek 81:
// Other crosscutting code.
}
</syntaxhighlight>
== Join point modely (JPM) ==
|