Sobes.tech
Junior — Middle

Oby explain qilishingiz mumkinmi ob'ektga yo'naltirilgan dasturlashda interfeyslarni ajratish tamoyilini?

sobes.tech AI

AIdan javob

Interfeyslarni ajratish prinsipi (Interface Segregation Principle, ISP) shuni aytadiki, bir nechta ixtisoslashgan interfeyslar yaratish yaxshiroq, bir umumiy interfeysdan ko'ra. Mijozlar foydalanmaydigan metodlarga bog'lanmasligi kerak.

Amalda, agar sizda ko'p metodli interfeys bo'lsa va turli sinflar faqat ularning bir qismini ishlatsa, interfeysni bir nechta torroq bo'laklarga bo'lish ma'qul. Bu moslashuvchanlikni oshiradi va kodni qo'llab-quvvatlashni osonlashtiradi.

Masalan, iOSda tarmoq va ma'lumotlar bazasi bilan ishlash uchun interfeyslarni ajratish mumkin:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // ma'lumotlarni yuklashni amalga oshirish
    }
    
    func saveData() {
        // ma'lumotlarni saqlashni amalga oshirish
    }
}

Shunday qilib, agar sinf faqat tarmoq funksiyalaridan foydalanayotgan bo'lsa, u faqat NetworkService ga bog'lanishi mumkin, saqlash metodlarini bilmasdan.