A számítógép-programozásban a nagy osztály egy túlságosan nagyra nőtt osztály. Az osztályok mérete különböző módszerekkel mérhető: nézhetjük a sorok, metódusok vagy a mezők számát. Az objektumorientáció egyik alapelve az, hogy egy osztály egy felelősséget lásson el, és ne kapjon más feladatot. Azonban nem mindig egyszerű eldönteni, hogy mi tartozhat az osztály feladatai közé, így a feladatok köre lopakodva bővülhet, egészen az áttekinthetetlenségig.
Az osztályok mérete azért is megnőhet, mert könnyebb egy létező osztályhoz új metódust hozzáadni, mint egy újabb osztályt létrehozni.
A probléma megoldható a felelősségek elkülönítésével, és azok újabb osztályokba való áthelyezésével. A refraktorálás utáni rendszerben szükség lehet szülő osztályokra vagy interfészekre, melyeken át a kliens egyszerűsített nézetet kaphat, az implementáció részletei nélkül.
A helyzet nehezebb, hogyha az osztály felelős a grafikus interfészért is. Ekkor adatokat és viselkedést lehet más osztályokba átemelni.
A refraktorálás után a fejlesztőknek nem kell az osztállyal való foglalkozáshoz megjegyezni a nagy osztály mezőit és metódusait, és segít a kódduplikáció felszámolásában.
Forrás Refractoring Guru
Kategória:Programozási antiminták