Interfeysni ajratish printsipi - Interface segregation principle

Sohasida dasturiy ta'minot, interfeys-ajratish printsipi (Internet-provayder) hech bir mijoz o'zi foydalanmaydigan usullarga bog'liq bo'lishga majbur qilinmasligi kerakligini ta'kidlaydi.[1] Internet-provayder juda katta interfeyslarni kichikroq va o'ziga xos interfeyslarga ajratadi, shunda mijozlar faqat o'zlari uchun qiziq bo'lgan usullar haqida bilishlari kerak bo'ladi. Bunday qisqargan interfeyslar ham deyiladi rol interfeysis.[2] Internet-provayder tizimni ajratib turishga mo'ljallangan va shu sababli uni qayta ishlash, o'zgartirish va qayta ishlash osonroq bo'ladi. Qattiq yuqori muvofiqlik printsipiga o'xshash ob'ektga yo'naltirilgan dizayn tamoyillari Tushunish.[3]

Ob'ektga yo'naltirilgan dizayndagi ahamiyati

Ichida ob'ektga yo'naltirilgan dizayn, interfeyslar kodni soddalashtiradigan va ulanishning oldini oluvchi to'siq yaratadigan abstraktsiya qatlamlarini taqdim eting bog'liqliklar.

Manifestni imzolagan ko'plab dasturiy ta'minot mutaxassislarining fikriga ko'ra Dasturiy ta'minot, yaxshi ishlab chiqilgan va o'zini o'zi tushuntiradigan dasturlarni yozish, ishlaydigan dasturlarni yozish kabi deyarli muhimdir.[4] Dasturiy ta'minotning maqsadini yanada tavsiflash uchun interfeyslardan foydalanish ko'pincha yaxshi fikrdir.

Tizim bir necha darajalarda shunchalik bog'lanib ketadiki, endi ko'pgina qo'shimcha o'zgarishlarni talab qilmasdan bir joyda o'zgartirish mumkin bo'lmaydi.[1] Interfeysdan foydalanish yoki mavhum sinf ushbu nojo'ya ta'sirning oldini olish mumkin.

Kelib chiqishi

Internet-provayder birinchi marta ishlatilgan va formulalashgan Robert C. Martin uchun maslahatlashayotganda Xerox. Xerox zımbalama va faks orqali yuborish kabi turli xil vazifalarni bajara oladigan yangi printer tizimini yaratdi. Ushbu tizim uchun dasturiy ta'minot tubdan yaratilgan. Dasturiy ta'minot o'sib borishi bilan modifikatsiya qilish tobora qiyinlashib bordi, shunda eng kichik o'zgarish ham bir soatlik qayta ishlash tsiklini oladi, bu esa rivojlanishni deyarli imkonsiz qildi.

Dizayn muammosi shundaki, bitta Job klass deyarli barcha vazifalar tomonidan ishlatilgan. Bosib chiqarish yoki zımbalama ishini bajarish kerak bo'lganda, Job sinfiga qo'ng'iroq qilinardi. Natijada turli xil mijozlarga xos bo'lgan ko'plab usullar bilan "semiz" sinf paydo bo'ldi. Ushbu dizayn tufayli asosiy ish bosma ishning barcha usullari haqida biladi, garchi ular uchun foydasi yo'q edi.

Martin tomonidan taklif qilingan echim bugungi kunda interfeyslarni ajratish printsipi deb nomlangan narsadan foydalangan. Xerox dasturiga tatbiq etilgan, Job klassi va uning mijozlari o'rtasida interfeys qatlami qo'shilgan Bog'liqlik inversiyasi printsipi. Bitta katta ish sinfiga ega bo'lish o'rniga, ish sinfining qo'ng'iroq qilish usullari bilan mos ravishda Staple yoki Print sinflari foydalanadigan Staple Job interfeysi yoki Print Job interfeysi yaratildi. Shuning uchun har bir ish turi uchun bitta interfeys yaratildi, barchasi Job klassi tomonidan amalga oshirildi.

Odatda buzilish

Interfeysni ajratish printsipining odatdagi buzilishi tezkor dasturiy ta'minotni ishlab chiqishda berilgan: Printsiplar, naqshlar va amaliyotlar.[1] "ATM tranzaktsiyasi misoli" va shuningdek, tomonidan yozilgan maqolada Robert C. Martin maxsus Internet-provayder haqida.[5] Ushbu misolda bankomat uchun foydalanuvchi interfeysi muhokama qilinadi, u depozit so'rovi yoki pulni qaytarib olish talabi kabi barcha so'rovlarni ko'rib chiqadi va ushbu interfeysni individual va o'ziga xos interfeyslarga ajratish kerak.

Shuningdek qarang

  • Qattiq - SOLID-dagi "men" interfeysni ajratish printsipini anglatadi

Adabiyotlar

  1. ^ a b v Martin, Robert (2002). Tezkor dasturiy ta'minotni ishlab chiqish: printsiplar, naqshlar va amaliyotlar. Pearson ta'limi.
  2. ^ Rol interfeysi
  3. ^ "Devid Xeyden, Interfeysni ajratish printsipi (ISP) - Ob'ektga yo'naltirilgan sinf dizayni asoslari". Arxivlandi asl nusxasi 2010-08-20. Olingan 2009-11-07.
  4. ^ Dasturiy ta'minotni ishlab chiqarish manifesti
  5. ^ Robert C. Martin,Interfeysni ajratish printsipi, C ++ hisoboti, 1996 yil iyun

Tashqi havolalar