Wpis z mikrobloga

Mam encję domenową Task z m.in polem Description. Encja udostępnia między innymi metodę IsDescriptionLengthCorrect, która w podejściu obiektowym przyjmowała by jakiś interfejs, a w innej warstwie ten interfejs byłby implementowany. Chciałem jednak wprowadzić elementy funkcyjne do mojego kodu i teraz metoda isDescriptionLengthCorrect zamiast intefejsu przyjmuje Predicate. W innej warstwie mam DescriptionLengthValidatorProvider z publicznym finalnym (!) polem Predicate z jego implementacją. Czy takie podejście jest ok czy brakuje jakiegoś elementu? Bo obiektowo, to przed implementacją patrzyłbym do folderu z portami i sprawdził jakie intefejsy są do zaimplementowania a teraz muszę zajrzeć bezpośrednio do encji domenowej.
#java #naukaprogramowania #programowanie #ddd
  • 1
@Edelner: w DDD chodzi o enkapsulacje logiki w warstwie domenowej, a ty ja próbujesz gdzieś delegować. Poza tym taka metoda jest bez sensu - ta walidacja powinna być wykonywana w momencie tworzenia obiektu, a utworzony obiekt już na pewno być poprawny.