Protokol (ob'ektga yo'naltirilgan dasturlash) - Protocol (object-oriented programming)

Protokol ma'lum bir atama ob'ektga yo'naltirilgan dasturlash boshqa tillar ataylaydigan turli xil o'ziga xos ma'nolarga ega tillar interfeys yoki xususiyat.

Protokol aks holda ishlatilganda a ga o'xshaydi Muloqot protokoli, qo'ng'iroq qiluvchi va ob'ekt o'rtasidagi o'zaro ta'sirlar zanjirini ko'rsatuvchi.

Protokol atamasini ishlatadigan tillarga quyidagilar kiradi:

Ushbu tillarda protokol diskret uchun keng tarqalgan vosita hisoblanadi ob'ektlar bir-biri bilan muloqot qilish. Bu ta'riflar usullari va bir qismi sifatida hamkorlik qilish uchun ob'ektlar kelishgan qadriyatlar API.

Protokol / interfeys quyidagilarning tavsifidir:

  1. Ob'ekt tomonidan tushuniladigan xabarlar.
  2. Ushbu xabarlar bilan ta'minlanishi mumkin bo'lgan dalillar.
  3. Ushbu xabarlar qaytaradigan natijalar turlari.
  4. The invariantlar ob'ekt holatiga o'zgartirish kiritilganiga qaramay saqlanib qolgan.
  5. Ob'ektga mijozlar tomonidan ishlov berilishi talab qilinadigan istisno holatlar.
  6. (Faqat aloqa uslubida foydalanish uchun :) UML o'zaro ta'sir diagrammalarida ko'rsatiladigan usullarning qo'ng'iroqlar ketma-ketligi va qaror qabul qilish nuqtalari: Aloqa diagrammasi, Tartib diagrammasi, O'zaro aloqalarni ko'rib chiqish diagrammasi /Faoliyat diagrammasi, Vaqt diagrammasi.

Ob'ektlar to'liq bo'lsa kapsulalangan u holda protokol boshqa ob'ektlar tomonidan ob'ektlarga kirishning yagona usulini tavsiflaydi. Masalan, ichida Java interfeyslar, Taqqoslash mumkin interfeysi usulni belgilaydi comparTo () qaysi amaliy mashg'ulotlar amalga oshirilishi kerak. Bu shuni anglatadiki, alohida tartiblash usuli, masalan, taqqoslanadigan interfeysni amalga oshiradigan har qanday ob'ektni, sinfning ichki tabiati haqida hech narsa bilmasdan, saralashi mumkin (bundan tashqari, ushbu ob'ektlardan ikkitasini comparTo ()).

Biroz dasturlash tillari protokollar / interfeyslar uchun aniq tilni qo'llab-quvvatlash (Ada, C #, D., Dart, Delphi, Boring, Java, Logtalk, Ob'ekt Paskal, Maqsad-C, PHP, Raketka, 7. Urug ', Tez ). Yilda C ++ interfeyslar mavhum bazaviy sinflar sifatida tanilgan va ular yordamida amalga oshiriladi sof virtual funktsiyalar. Ob'ektga yo'naltirilgan xususiyatlar Perl interfeyslarni ham qo'llab-quvvatlaydi.

Ob'ektiv bo'lmagan tillar

Garchi Go dasturlash tili odatda ob'ektga yo'naltirilgan til deb hisoblanmaydi, u foydalanuvchi tomonidan belgilangan turlarda usullarni aniqlashga imkon beradi. Go-da berilgan usullar to'plamini qo'llab-quvvatlaydigan har qanday turga mos keladigan "interfeys" turlari mavjud (turi interfeysni aniq amalga oshirishi shart emas). Bo'sh interfeys, interfeys {}, barcha turlarga mos keladi.

Yozib oling funktsional dasturlash va tarqatilgan dasturlash tillar atamani ishlatadi protokol kommunikatsiyalardan foydalanishga o'xshash (ya'ni ruxsat berilgan spetsifikatsiya) almashinuvlar xabarlar, diqqat almashinuvlar, xabarlarda emas)[iqtibos kerak ]. Xususan, ushbu tillardagi protokol tarkibiga quyidagilar kiradi:

  1. Xabarlarning ruxsat etilgan ketma-ketliklari,
  2. Muloqotning har qanday ishtirokchisiga cheklovlar,
  3. Xabarni ko'rib chiqishda yuzaga keladigan kutilgan effektlar.

Sinflarni yozing kabi tillarda Xaskell protokollar ishlatilgan ko'p narsalar uchun ishlatiladi.

Shuningdek qarang

Adabiyotlar

  1. ^ "Objective-C dasturlash tili: bayonnomalar". Apple Inc. Olingan 7 oktyabr 2012.
  2. ^ Rasmiy Python 3 hujjatlari, Xulosa ob'ekti qatlami