Sobes.tech
Junior — Middle

Կարող եք բացատրել ինտերֆեյսների բաժանման սկզբունքը օբյեկտային ծրագրավորման մեջ?

sobes.tech AI

Պատասխան AI-ից

Ինտերֆեյսների բաժանման սկզբունքը (Interface Segregation Principle, ISP) ասում է, որ ավելի լավ է ստեղծել մի քանի մասնագիտացված ինտերֆեյսներ, քան մեկ ընդհանուր։ Հաճախորդները չպետք է կախված լինեն այն մեթոդներից, որոնք նրանք չեն օգտագործում։

Практиկայում դա նշանակում է, որ եթե لديك ինտերֆեյս, որը պարունակում է շատ մեթոդներ, և տարբեր դասեր օգտագործում են միայն մի մասը դրանց, ապա արժե այն բաժանել մի քանի ավելի նեղ ինտերֆեյսների։ Դա մեծացնում է ճկունությունը և հեշտացնում է կոդի սպասարկումը։

Օրինակ, iOS-ում կարող եք բաժանել ինտերֆեյսը ցանցի և տվյալների բազայի հետ աշխատելու համար:

protocol NetworkService {
    func fetchData()
}

protocol DatabaseService {
    func saveData()
}

class DataManager: NetworkService, DatabaseService {
    func fetchData() {
        // տվյալների բեռնում
    }
    
    func saveData() {
        // տվյալների պահպանում
    }
}

Այսպիսով, եթե դասը միայն ցանցային ֆունկցիաներ է օգտագործում, նա կարող է կախված լինել միայն NetworkService-ից, առանց իմանալու տվյալների պահպանման մեթոդների։