Wpis z mikrobloga

Mam zaimplemetowanego command patterna i potrzebuję przed egzekucją komendy zrobić jej walidację (stanu) i nie ogarniam jakiego tu wzorca użyć. Czy po prostu zrobić coś na zasadzie:

if(command.CanExecute()) command.Execute(); else return false;

#programowanie #programista15k #dotnet
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Saly: tak nie mogę zrobić.Bo wykonanie komendy jest zależne od aktualnego stanu, a klient ma tylko jego kopię. Serwer jest source of truth.

@villager: teraz mam podobnie powiedzmy. Stworzenie ogólnej metody SafeExecution() z powyższą implementacją najlepsza opcja jak na razie
  • Odpowiedz
@harakiri888: to nie brzmi jak walidacja stanu, tylko zwykły błąd/wyjątek wywołania metody. Tak czy owak fajnie jakbyś nakreślił bardziej kontekst, bo zaczyna być ciekawie
  • Odpowiedz
@harakiri888: ok, wygląda dobrze. Użyłeś niefortunnych słów: jako potrzebuję przed egzekucją komendy zrobić jej walidację (stanu) chyba każdy rozumie walidację stanu komendy (jej), a tutaj walidujesz argumenty. Co do CanExecute() to jestem przeciwny, bo utrudnia to używanie kodu. Co jak ktoś zawoła Execute() bez CanExecute()? I tak trzeba obsłużyć taką sytuację. Jak komendy się nie da wykonać to niech zwraca tego boola/rzuca wyjątek/zwraca specialny typ.
  • Odpowiedz