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ке көз каранды боло алат, маалымат сактоо методдорун билбестен.