návrhového Vzoru – Command návrhový Vzor Zjednodušeného

Existuje mnoho vzor Příkazu vysvětlení tam, ale našel jsem to trochu těžko stravitelné, nebo pochopit příkladu poskytnutých v těch blogy/příspěvky.
zde se tedy pokusím vysvětlit tak, jak jsem pochopil.

Chcete-li pochopit příkaz vzor umožňuje vrátit se do 1990, kdy jsme měli obrovské televizory bez dálkového ovladače (alespoň v Indii). Staré dobré časy 😉

měli Jsme všechny knoflíky pro zapnutí/vypnutí, zvýšení/snížení objemů.

všechno bylo dobré, fungovalo dobře, jediný problém byl, kdyby někdo chtěl zapnout/vypnout televizor nebo snížit/zvýšit hlasitost, musel jít až k televizoru a použít knoflík.

nyní to přemýšlejte objektově orientovaným způsobem. TV je objekt, který má spoustu operací / metod / funkcí nebo „příkaz“. K vyvolání těchto příkazů přistupujeme přímo k objektu TV.

problém s tímto přístupem?

  1. potřebujete objektu k vyvolání příkazu — tudíž pěšky na TV
  2. Každá TELEVIZE má své vlastní implementace start/stop a nejsme schopni se znovu použít „Příkaz vyvolání“
  3. Pokud další zařízení „Set-Top-Box“ chce stejné funkce, žádný způsob, jak re-používat stejné operace — „Univerzální Dálkové“

Jak to můžeme vyřešit?

Představte si, že TV má rozhraní, které implementuje zapnutí/vypnutí a další funkce a vystavuje tyto metody/operace, tím, že instance rozhraní „další objekt“. To by mohlo vyřešit náš problém. Pojďme do kódu:

nejprve vytvoříme televizní třídu, která má operace zapnuto / vypnuto.

IDevice.Jáva
televize.java

stejně tak vytvoříme třídu Set-top boxu, když vytváříme univerzální dálkový ovladač.

SetTopBox.java

Nyní, když jsme definovali naše zařízení a jejich operace, potřebujeme třídu (příkaz), která dokáže udržet objekty TV / SetTopBox a vyvolat tyto operace.

pojďme vytvořit naši třídu příkazů. Protože chceme na těchto zařízeních provádět dvě operace, Třída příkazů bude mít „objekt typu IDevice“.
potřebujeme dva příkazy „ON“ a „OFF“.
tyto objekty příkazu On / Off budou mít jednu funkci/metodu execute, která vyvolá příslušnou operaci na zařízení, které má.

pokud jste si všimli, vytvořil jsem třídy s názvem „OnCommad“ a ne „TVOnCommand“. Cílem je znovu použít třídu příkazů pro různá zařízení. To je náš univerzální příkaz, který podporuje jakékoli zařízení.
to nám umožní vytvořit univerzální dálkový ovladač. Bingo!!!!

Dosud jsme abstrahovali operace zařízení ve formě „příkazu“. Jediné, co nám zbývá, je vytvořit dálkový Ovladačovládání, spuštění „příkazu“.

než vytvoříme dálkové ovládání, musíme vytvořit tlačítka a každé tlačítko provede příslušný příkaz.

Třída RemoteButton má příkazový objekt, který se spustí po stisknutí tlačítka.

RemoteButton.java

nakonec vytvoříme naše dálkové ovládání, které bude mít pro každou operaci více tlačítek.
když vytváříme zařízení dálkového ovládání(pomocí konstruktoru), vytvoříme instanci všech objektů a přiřadíme je.

RemoteControlDevice.java

pokud se podíváte na výše uvedený kód, v našem dálkovém ovladači jsme definovali více tlačítek a snažíme se vytvořit univerzální dálkový ovladač.

My jsou nastaveny na vytvořit a hrát si s naší RemoteControlDevice 🙂

Výstup:

TV is on!
TV is off!
SetTopBox is on!
SetTopBox is off!Process finished with exit code 0

Jak je vidět na výstupu mám stisknutí různých tlačítek, provádět řadu operací na Zařízení.

Takže, ve zkratce, idea je, aby klient(psvm/TV uživatelská) vzdálené místo toho, aby jim jít celou cestu k TV, nebo dát TV pro zapnutí/vypnutí TV 😀

Závěr

V tomto příspěvku jsme hovořili o Command návrhový vzor.
V jednoduchých slov:

nápad je zapouzdření operace v jiném objektu(Příkaz) a znovu použít, a pak vytvořit několik tlačítek k provedení těchto příkaz objekty, které má Zařízení operace.

jako obvykle najdete veškerý kód na mém Githubu.

You might also like

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.