Sobes.tech
Middle+

Hogyan viszonyulsz a nagyon hosszú osztályokhoz, amelyek 2000 és 4000 sor kódot tartalmaznak?

sobes.tech MI

Válasz az MI-től

Negatív.

A hosszú osztályok sértik az egységes felelősség elvét (SRP) és a legkevesebb tudás elvét (Principle of Least Knowledge). Ez a következő problémákhoz vezet:

  • Nehezen olvasható és érthető: Egy nagy kódmennyiség megnehezíti az osztály logikájának megértését.
  • Nehezen karbantartható és módosítható: Az osztály egyik részének módosítása véletlenül másokat is befolyásolhat, hibákat okozva.
  • Kódduplikáció kockázata: A funkcionalitás ismétlődhet az osztály különböző részein.
  • Tesztelési problémák: Egy nagy osztály egységtesztelése bonyolult és időigényes.
  • Az újrafelhasználhatóság csökkenése: Nehéz kivonni és más helyen használni a funkcionalitás részeit.

Ideálisan az osztályok rövidek legyenek, és egy konkrét feladatot lássanak el. A funkcionalitást kisebb, specializált osztályokra vagy függvényekre kell bontani. Az ilyen "isteni" osztályok refaktorálása elsődleges feladat a kódminőség javítása érdekében.

A bontáshoz az alábbi megközelítéseket lehet alkalmazni:

  • A kapcsolódó logika külön osztályokba való kivonása: Például adatkezelés, UI-logika, üzleti logika.
  • Tervezési minták alkalmazása: MVC, MVP, MVVM, Repository, Factory stb.
  • Kisebb funkciókra/metódusokra bontás: minden metódusnak egy dolgot kell csinálnia.
  • Kotlinben az extension-ök használata: a funkcionalitás hozzáadása anélkül, hogy módosítanánk az eredeti osztályt.