Command - Biblioteka.sk

Upozornenie: Prezeranie týchto stránok je určené len pre návštevníkov nad 18 rokov!
Zásady ochrany osobných údajov.
Používaním tohto webu súhlasíte s uchovávaním cookies, ktoré slúžia na poskytovanie služieb, nastavenie reklám a analýzu návštevnosti. OK, súhlasím


Panta Rhei Doprava Zadarmo
...
...


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

Command
 ...

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

Reference

Zdroj:https://cs.wikipedia.org?pojem=Command
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.






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.

Your browser doesn’t support the object tag.

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