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 такя кунад, бидуни донистани методҳои нигоҳдории додаҳо.