Cíl – akce - Target–action
Termín cíl – akce paradigma designu odkazuje na druh softwarová architektura, kde počítačový program je rozdělen do předměty které dynamicky navazují vztahy tím, že si navzájem říkají, na který objekt by se měly zaměřit a jakou akci nebo zprávu mají tomuto cíli odeslat, když dojde k události. To je zvláště užitečné při implementaci grafická uživatelská rozhraní, které jsou od přírody řízené událostmi.
Výhody
Přístup cíl-akce k systémům řízeným událostmi umožňuje mnohem více dynamiky ve srovnání s jinými, statičtějšími přístupy, jako například podtřídy. Je to proto, že podtřída je relativně tuhý způsob programování: programátor musí v době návrhu rozvrhnout vnitřní logiku propojení programu a to nelze později změnit, pokud program není zastaven, znovu připraven a znovu sestaven. Na druhou stranu programování založené na cílových akcích je může úplně změnit na run-time, což umožňuje programu vytvářet nové vzájemné vztahy a nové chování samo o sobě.
Ukázkovým příkladem tohoto přístupu je OpenStep API, což částečně díky tomu, že je založeno na dynamice Cíl-C jazyk, má většinu svého grafického uživatelského rozhraní implementováno pomocí paradigmatu cíl-akce. Zvažte následující příklad napsaný v Objective-C:
[button setTarget: self]; [button setAction: @selector (doSomething)];
Nyní, když knoflík identifikováno knoflík proměnná je stisknuto, runtime systém se pokusí odeslat zprávu s názvem dělej něco k objektu, ve kterém byl tento kód vyvolán. Je také velmi dobře možné určit zprávu, která má být odeslána za běhu:
[button setTarget: self]; [button setAction: NSSelectorFromString ([textField stringValue])];
Zde je zpráva, která má být odeslána, určena konzultací a textové pole hodnota řetězce (řetězec textu, který uživatel zadal do textového pole). Tento řetězec je poté převeden na zprávu (pomocí NSSelectorFromString funkce ) a předán tlačítku jako jeho akce. To je možné, protože v rámci Objective-C jsou metody reprezentovány a volič, jednoduchý řetězec popisující metodu, která má být volána. Při odeslání zprávy se selektor odešle do modulu runtime ObjC, porovná se se seznamem dostupných metod a zavolá se implementace metody. Implementace metody se vyhledává za běhu, ne za čas kompilace.
Nevýhody
Z důvodu extrémní dynamiky a svobody chování, které jsou dány programům navrženým s paradigmatem cílové akce, se může stát, že programový designér nesprávně implementuje část logiky propojení, což může vést k někdy těžko vysledovatelným chybám. To je způsobeno nedostatkem čas kompilace kontrola poskytovaná překladač které nemohou vidět propojení. Řízení konzistence propojení je tedy zcela ponecháno na programátoru.
Výsledek nesprávně připojené vazby cíl-akce se může lišit podle toho, jak to respektuje konkrétní systém, ve kterém je program implementován:
- může ignorovat podmínku a neprovádět nic (například v příkladu tlačítka výše - pokud cíl tlačítka nereaguje na jeho akční zprávu, stisknutí tlačítka jednoduše nic nedělá)
- takový stav může považovat za Chyba, v takovém případě to s největší pravděpodobností způsobí, že program pád nebo vyvolat run-time výjimka
Viz také
- The OpenStep API
- Další krok - operační systém společnosti NeXT Software Inc. (nyní Apple Inc. ) z velké části založen na OpenStep API
- GNUstep - bezplatná implementace OpenStep API
- Kakao - API odvozené od NeXTSTEP použité na Mac OS X
- Cíl-C