Middle+
2-4 min satır kod olan çox uzun siniflər haqqında nə düşünürsünüz?
sobes.tech Süni İntellekt
AI-dan cavab
Mənfi.
Uzun siniflər tək məsuliyyət prinsipi (SRP) və ən az bilik prinsipi (Principle of Least Knowledge) pozur. Bu, aşağıdakı problemlərə səbəb olur:
- Oxumaq və başa düşmək çətindir: Böyük kod miqdarı sinifin məntiqini anlamağı çətinləşdirir.
- Dəstək və dəyişiklik çətindir: Sinifin bir hissəsini dəyişdirmək, digər hissələrə təsir edə bilər və səhvlərə səbəb ola bilər.
- Kod təkrarlanma riski: Funksionallıq sinifin müxtəlif hissələrində təkrarlana bilər.
- Testləşdirmə problemləri: Böyük sinif üçün vahid testlər mürəkkəb və vaxt alıcı olur.
- Yenidən istifadə imkanının azalması: Funksionallığın hissələrini çıxarmaq və başqa yerdə istifadə etmək çətindir.
İdeal olaraq, siniflər qısa olmalı və müəyyən bir vəzifəni yerinə yetirməlidir. Funksionallıq daha kiçik və ixtisaslaşmış siniflərə və ya funksiyalara bölünməlidir. Bu "ilahi" siniflərin refaktorlaşdırılması kod bazasının keyfiyyətini artırmaq üçün prioritetdir.
Bölmə üçün aşağıdakı yanaşmalar istifadə oluna bilər:
- Əlaqəli məntiqi ayrıca siniflərə ayırmaq: Məsələn, məlumatların idarə olunması, UI məntiqi, biznes məntiqi.
- Dizayn nümunələrinin tətbiqi: MVC, MVP, MVVM, Repository, Factory və s.
- Daha kiçik funksiyalar/metodlara bölmək: hər metod bir şey etməlidir.
- Kotlin-də genişləndirmələrdən istifadə: orijinal sinfi dəyişdirmədən funksionallıq əlavə etmək üçün.