Parancs programtervezési minta

Az objektumorientált programozásban, a parancs minta egy viselkedési forma, amelyben egy objektumot használunk arra, hogy reprezentáljunk és párosítsunk minden olyan információt, amely szükséges lehet egy metódus későbbi meghívásához. Ezen információk közé tartozik a metódus neve, az objektum amely birtokolja a metódust és az értékeit a metódus paramétereinek.Az alábbi négy pont mindig együtt említendő a parancs mintával kapcsolatban, melyek nem mások mint a

  • (Command) parancs,
  • (Receiver) vevő,
  • (Invoker) felhasználó [meghívó],
  • (Client) ügyfél.

A parancs objektumnak van egy vevő objektuma és ennek meghívja egy metódusát. A vevő ezután elvégzi a munkát. A parancs objektum el van különítve egy felhasználó objektumnak, amely meghívja a parancsot. Minden parancs objektum átadható ugyanannak a felhasználó objektumnak. Mind a felhasználó objektum és néhány parancs objektum az ügyfél objektum birtokában van. Az ügyfél tartalmazza a döntéshozatalt, hogy melyik parancsot kell végrehajtani, az adott ponton. Egy parancs végrehajtása azt jelenti, hogy egy parancs objektumot átadunk a felhasználó objektumnak. Lásd a példákat lentebb.

A Parancs objektumok használata könnyebbé teszi az általános komponensek létrehozását, amik szükségesek a „Delegate”, szekvenciális, vagy végrehajtó metódusok meghívásához anélkül, hogy tudnánk a "class"-unk metódusát, vagy annak paramétereit. A felhasználó (Invoker) objektum használata lehetőséget biztosít a naplózásra a parancs végrehajtások könnyű elvégezhetőségének érdekében, amennyiben végrehajtunk különböző parancsokat, amelyek egy felhasználó objektum által vannak vezérelve, anélkül, hogy az ügyfél tudatában lenne naplózásnak, vagy módoknak.