Sobes.tech
Junior — Middle

SOLID prinsiplərini izah edə bilərsiniz və onları proqram təminatı inkişafında necə tətbiq edirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

SOLID prinsipləri obyekt yönümlü dizaynın beş əsas qaydasıdır və çevik, genişlənə bilən və dəstəklənən kod yaratmağa kömək edir:

  1. S — Yeganə məsuliyyət prinsipi Hər bir sinif yalnız bir dəyişiklik səbəbi olmalıdır, yəni, bir vəzifə üçün cavabdeh olmalıdır.

  2. O — Açıq/Qapalı prinsipi Siniflər genişləndirməyə açıq, lakin dəyişiklik üçün qapalı olmalıdır.

  3. L — Liskov əvəzləmə prinsipi Törəmə siniflərin obyektləri, əsas sinifin obyektləri ilə əvəz oluna bilməli və proqramın düzgünlüyünü pozmamalıdır.

  4. I — İnterfeys ayırma prinsipi Müştərilər istifadə etmədikləri interfeyslərə bağlı olmamalıdırlar. Bir neçə ixtisaslaşmış interfeysə sahib olmaq, ümumi bir interfeysə nisbətən daha yaxşıdır.

  5. D — Asılılıqların tərs çevrilməsi prinsipi Yüksək səviyyəli modullar aşağı səviyyəli modullardan asılı olmamalıdır. Hər ikisi abstraksiyalara bağlı olmalıdır.

Go dilində tətbiq nümunəsi:

// Yeganə məsuliyyət prinsipi
// Struktur (sinif) yalnız istifadəçilərlə işləmək üçün cavabdehdir

type UserRepository interface {
    GetUser(id int) (*User, error)
}

// Asılılıqların tərs çevrilməsi prinsipi
// Xidmət konkret tətbiqə deyil, interfeysə bağlıdır

type UserService struct {
    repo UserRepository
}

func (s *UserService) GetUserName(id int) (string, error) {
    user, err := s.repo.GetUser(id)
    if err != nil {
        return "", err
    }
    return user.Name, nil
}

SOLID prinsiplərinin tətbiqi kodun test edilməsini, genişləndirilməsini və saxlanmasını asanlaşdırır.