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.