Nie czaję tego postulatu. Mam wrażenie, że każda klasa powinna mieć po 1 metodę by miała tylko 1 powód do zmiany...
Zrobiłem klasę zliczającą ilość wystąpień słów w tekście:
import java.util.Map;
import java.util.TreeMap;
public class WordsCounter {
Map<String, Integer> wordsMap = new TreeMap<>();
String[] singleWords = {};
public void add(String text) {
splitWords(text);
calcWords();
}
public void splitWords(String text) {
singleWords = text.split(" ");
}
public void calcWords() {
Integer value;
for (String x : singleWords) {
value = wordsMap.get(x);
if (value == null) {
wordsMap.put(x, 1);
} else {
wordsMap.put(x, ++value);
}
}
}
public Map<String, Integer> getWordsCounted() {
return wordsMap;
}
}
czy jest tu złamana zasada single responsiblity i powinienem rozdzielić to na 2 klasy?
1 klasa: zliczająca słowa i przechowująca je?
2 klasa wyłuskującą pojedyncze słowa z tekstu i przechowująca je?