Jeśli przypomnisz sobie, dlaczego OO został wymyślony, zobaczysz, że wcale nie potrzebujesz OOP, ale czasami znacznie ułatwia ci to życie.
W czasach kodowania C bardzo duży program mógł stać się dość niechlujny i trudny w obsłudze. Wymyślili więc sposoby dzielenia go na części modułowe. OOP przyjmuje to podejście i czyni go jeszcze bardziej modułowym, łącząc dane z tymi częściami logiki programu, aby były jeszcze bardziej oddzielone od reszty kodu.
Dzięki temu możesz pisać coraz większe programy, bezpiecznie, że zamiast tego zmieniłeś swojego ogromnego słonia z zadania w sto zadań wielkości myszy. Dodatkową zaletą jest to, że możesz wziąć niektóre z tych „myszy” i użyć ich ponownie w innych programach!
Oczywiście rzeczywisty świat nie jest taki do końca, a ponowne użycie obiektów nigdy nie do końca pasuje do zamierzonego, ale nie oznacza to, że jest to bezużyteczny paradygmat.
Bezużyteczne jest nadmierne poleganie na dowolnym stylu kodowania. Każdy, kto robi OO z tysiącem małych, nieistotnych klas, nie robi tego właściwie - robią koszmar dla siebie (lub kogoś innego). Każdy, kto pisze procedurę, która ma tylko 3 funkcje, również utrudnia życie. Najlepszym sposobem są pośrednie, duże obiekty (czasem nazywane komponentami, do których kiedyś mieliśmy się przyłączyć), które mogą dostarczyć sporo samodzielnego kodu i danych, które są znacznie bardziej prawdopodobne, że zostaną ponownie wykorzystane w oderwaniu od reszty aplikacji.
Moja rada na następny raz: spróbuj napisać zwykły kod proceduralny, ale stwórz pojedynczy obiekt swojej głównej struktury danych. Zobacz, jak uważasz, że praca z nim jest łatwiejsza niż przekazywanie danych z funkcji do funkcji.