Wpis z mikrobloga

Mam dwa pakiety i próbuje dobrze zaimplementować to zgodnie z Factory Design Pattern. Jeden pakiet to Counters a drugi Checkers. Counters zlicza pewne wartośći a Checkers sprawdza warunki, dostając wartości. Jak mam sobie klasę Main i tworze Fabryke ReadabilityChecker no to wszystko ładnie pięknie. Ale co w przypadku kiedy w Checkers chce użyć sobie do zliczania wartości któryś z Counterów? Mam za każdym razem tworzyć nową instancję w każdym Checkerze czy wrzucić jako jedną do interfejsu po którym dziedziczą Checkery (CheckingText). Tyle że wtedy musiałby mieć pusty konstruktor.

Więc albo za każdym razem tworzyć nową instancję fabryki (Checker) albo stworzyć jedną instancję w interfejsie a potem ustawiać za pomocą settera odpowiedni counter. Chyba żeby połączyć to jakoś w Main?

numberOfSentences = new Counter(new SentenceCounter()).count(text);
numberOfTheWords = new Counter(new WordCounter()).count(text);

czy

Counter counter = new Counter(); // w interfejsie Checker
counter.setCounter(new SentenceCounter()).count(text);

#programowanie #wzorceprojektowe
Pobierz MrFisherman - Mam dwa pakiety i próbuje dobrze zaimplementować to zgodnie z Factory D...
źródło: comment_1591215259etQVu1tgEDqlgfPDoMhlzO.jpg
  • 5
@MrFisherman: "Counter", "Counting", "WordCounter": cokolwiek robisz jest coś nie tak. Interfejsy powinny nazywać się od rzeczowników np. Collection albo od czynności które wykonują np. Comparable. Dalej po samych nazwach ciężko zrozumieć co robią klasy: czym różni się WordCounter od Counter? Co do zastosowania wzorca: tutaj raczej nie ma sensu, lepiej wszystko polączyć w mainie. Setterów staraj się nie używać, bo komplikujesz kod.