W świecie C ++ i Java widzę wiele możliwych do natychmiastowego utworzenia klas, które nie mają żadnego stanu.
Naprawdę nie mogę zrozumieć, dlaczego ludzie to robią, mogliby po prostu użyć przestrzeni nazw z darmowymi funkcjami w C ++ lub klasy z prywatnym konstruktorem i tylko statycznymi metodami w Javie.
Jedyną korzyścią, jaką mogę wymyślić, jest to, że nie musisz zmieniać większości kodu, jeśli później zdecydujesz, że chcesz innej implementacji w określonych sytuacjach. Ale czy nie jest to przypadek przedwczesnego projektowania? Można go później przekształcić w klasę, kiedy / jeśli stanie się to właściwe.
Czy mylę się? Czy to nie OOP, jeśli nie umieszczę wszystkiego w obiektach (tj. Klasach instancji)? Dlaczego więc jest tak wiele przestrzeni nazw i klas narzędzi w standardowych bibliotekach C ++ i Java?
Aktualizacja: Z pewnością widziałem wiele przykładów tego w moich poprzednich pracach, ale staram się znaleźć przykłady open source, więc może nie jest to wcale takie powszechne. Mimo to zastanawiam się, dlaczego ludzie to robią i jak często to się dzieje.