Wpis z mikrobloga

@Edelner: nie widze dokladnie co tam sie dzieje w tym kodzie, ale po pierwsze czemu metoda nazywa sie add skoro nie wiesz czy wykonane zostanie dodanie do kolejki? po drugie czemu w ogole rozwazasz dodanie commanda ktory nie koniecznie jest poprawny?
@Edelner: a może pokaż resztę tej klasy? Pytanie czy to odpowiednie miejsce na użycie walidatora? Jeżeli ta klasa powinna służyć do dodawania jakichś elementów (np. tasków) to raczej nie.
Więc w tej metodzie obsługiwałbym tylko dodawanie elementu.
Kolejne pytanie. Czy w trakcie dodawania elementu coś może się nie udać? Jeżeli tak to czy to ta klasa powinna to sprawdzić i obsłużyć wyjątek?
@ajgoron: To jest taki agregat. Przed dodaniem musi nastąpić walidacja.
@sezzart: Z czego rżysz? Co jest złego w tej nazwie? Ten command przychodzi z controllera od użytkownika, W handlerze jest walidowany i jeśli jest ok to zostaje zmapowany na encje i dodany do repo. Czego nie rozumiesz?
@Edelner:

List.of(command).stream()
.filter(validator::validate)
.map(c -> new Task(c.description, c.status))
.forEach(taskCommandRepository::add);

Ta lista jednego elementu mi się nie podoba, może jakaś guava albo coś ma coś w rodzaju Single albo Mono, nie sprawdzałem
via Wykop Mobilny (Android)
  • 0
@Myzreal: List.of(command).stream().collect(Collectors.toList()).stream().collect(Collectors.toSet()) jeszcze od razu, żeby narzutu nie zabrakło. Przeniosłeś ifa do filter, i nic to nie zmieniło.
@aloucie: "Zastąpiłem ifa filterem" bo na tym polega alternatywa, że się coś czymś zastępuje :) Kolega pytał o alternatywę, przedstawiłem alternatywę. W tym izolowanym przypadku nie ma większego sensu, ale być może całość teog systemu, którego fragment widzimy, skorzystałaby na zapisie funkcyjnym - tego nie wiem. A narzutu nie ma tu praktycznie żadnego
@Edelner to zalezy od przypadku uzycia, ale mozesz z latwoscia dodac do swojego Handlera komendy dekorator. Wiec na poczatku dekorator bedzie robil za warstwe walidacyjna. W momencie kiedy on stwierdzi, ze wszystko jest ok to deleguje zadanie do wlasciwego handlera z metoda obslugujaca to komende. I tak, mozna tam uzyc rowniez ifa, ale nie ma w tym nic zlego, nie martwisz sie ze cialo tego ifa bedzie rosnac w niekontrolowanu sposob plus