OOP je dobry sluha a spatny pan. Dobre jsou jazyky, ktere ho umoznuji, ale nevynucuji, takze je mozne ho aplikovat jen na mista a situace, kde je to vyhodne.
Kadet tady uvedl link na video, ve kterém je prezentováno, jak zbytečné některé třídy mohou být.
https://www.youtube.com/watch?v=o9pEzgHorH0Na devel.cz se tazatel ptal na zbytečnost testu. Odpověděl jsem mu, že je zbytečná celá třída a napsal k tomu náhradu na dva řádky. Byl jsem zavalen mínusy, hlavně kvůli tomu, že jsem odpověděl jinak, než se očekávalo. Budiž. Zároveň je z toho vidět, že když osekám třídu tak, že z ní nic nezbyde, tak se to nehodí do mantry OOP.
Mnoho tříd je napsáno tak, že mají několik atributů, ke každému jeden getter a jeden setter. Co to je? Obyčejná struktura. Jen se místo "title = xxx" píše "setTitle(xxx)". Operace s takovou instancí se provádí v další třídě, nejlépe pomocí statických metod. To má být OOP? Ne, je to jen převlečené strukturované programování.
Ani se nedivím, že se vývojáři ozývají, že tohle je fuj. Místo toho, aby napravili chybně aplikované OOP, utíkají k funkcionálnímu programování. Tam už mají své struktury, které mohli mít v objektech. Tam mají i funkce, které používají stejně, jako používali statické metody. Místo tříd mají moduly. Prakticky to používají stejně, jen s úspornějším zápisem. I tu curryfikaci si mohli napsat v OOP, kdyby to zvládli.
V každém paradigmatu se dá napsat dobrý nebo špatný program. Nejlepší výsledky však vychází, pokud je možné paradigmata kombinovat, nejlépe ve vrstvách. Spodní vrstva strukturovaně, mezivrstva funkcionálně, horní vrstva objektově. Proč ne?