A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Návrhový vzor Command zapouzdřuje operaci a její parametry do objektu tak, aby šla kdykoliv později zavolat. Potřebné informace většinou zahrnují typ operace, názvy parametrů a jejich hodnoty.
Uživatel nejprve vytvoří instance příkazů, které chce provést. K dispozici má i výkonný objekt, kterému příkazy předá. Výkonný objekt vykoná režii kolem spuštění (například uložení do historie) a příkazy spustí. Každý příkaz potom vykoná svou práci na svém podřízeném objektu.
Příklady použití:
- definice akcí pro tlačítka GUI (v jazyce JAVA je to rozhraní Action)
- nahrávání makra (posloupnosti příkazů lze načítat a ukládat)
- historie operací s možností Undo / Redo
- vícevláknové zpracovávání (operace se ukládají do fronty a na pozadí je zpracovávají vlákna)
- transakční zpracování (operace se nashromáždí a na požádání atomicky spustí)
Implementace v jazyce Scala
trait Operace {
def spustit()
}
class Vypinac {
private var historie: List = Nil
def provest(cmd: Operace) {
cmd.spustit()
this.historie :+= cmd
}
}
class Zarovka {
def zapnout() = println("Sviti")
def vypnout() = println("Nesviti")
}
class ZapnoutZarovku(zarovka: Zarovka) extends Operace {
def spustit() = zarovka.zapnout()
}
class VypnoutZarovku(zarovka: Zarovka) extends Operace {
def spustit() = zarovka.vypnout()
}
object ZkouskaZarovky {
def main(args: Array) {
val zarovka = new Zarovka()
val zapnout = new ZapnoutZarovku(zarovka)
val vypnout = new VypnoutZarovku(zarovka)
val vypinac = new Vypinac()
vypinac.provest(zapnout);
vypinac.provest(vypnout);
vypinac.provest(zapnout);
vypinac.provest(vypnout);
}
}
Související články
Externí odkazy
- Obrázky, zvuky či videa k tématu Command na Wikimedia Commons
Reference
Text je dostupný za podmienok Creative Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších podmienok. Podrobnejšie informácie nájdete na stránke Podmienky použitia.
Antropológia
Aplikované vedy
Bibliometria
Dejiny vedy
Encyklopédie
Filozofia vedy
Forenzné vedy
Humanitné vedy
Knižničná veda
Kryogenika
Kryptológia
Kulturológia
Literárna veda
Medzidisciplinárne oblasti
Metódy kvantitatívnej analýzy
Metavedy
Metodika
Text je dostupný za podmienok Creative
Commons Attribution/Share-Alike License 3.0 Unported; prípadne za ďalších
podmienok.
Podrobnejšie informácie nájdete na stránke Podmienky
použitia.
www.astronomia.sk | www.biologia.sk | www.botanika.sk | www.dejiny.sk | www.economy.sk | www.elektrotechnika.sk | www.estetika.sk | www.farmakologia.sk | www.filozofia.sk | Fyzika | www.futurologia.sk | www.genetika.sk | www.chemia.sk | www.lingvistika.sk | www.politologia.sk | www.psychologia.sk | www.sexuologia.sk | www.sociologia.sk | www.veda.sk I www.zoologia.sk