Tarkibi filtrlari - Composition filters - Wikipedia

The kompozitsion filtrlar model an'anaviyga modulli kengaytmani bildiradi ob'ekt modeli. Bu katta va murakkab dasturlarni qurishda keng ko'lamli muammolarni hal qilishga imkon beradi. Eng muhimi, kompozitsion filtrlarning bitta bajarilishini ta'minlaydi mavhumlik qatlami xabarlarni uzatish tizimlari uchun.

Tarkibi filtrlari kirish va chiqish xabarlarini boshqarish orqali ob'ektning xatti-harakatlarini o'zgartirish orqali ishlaydi. Bu shartlar bilan boshqariladigan kirish va chiqish filtrlari yordamida amalga oshiriladi.

Tarix va motivatsiya

Yilda bir vaqtda va tarqatildi hisoblashda kodni tarqatish va chigallashtirish kabi ko'plab muammolar mavjud bo'lib, ularni an'anaviy ishlatish qiyin edi ob'ekt - yo'naltirilgan modellar. Ushbu muammolarni hal qiladigan dasturiy ta'minotni ishlab chiqishning yangi modelini ishlab chiqish zarurati paydo bo'ldi va natijada bu shakllandi Aspektga yo'naltirilgan dasturiy ta'minotni ishlab chiqish paradigma. Ushbu paradigmadagi bir nechta modellar bir vaqtning o'zida ishlab chiqilgan va ulardan biri bu Kompozitsiya Filtrlari ob'ekti modeli. Ushbu modelning kashshoflari Mehmet Aksit va turli doktorantlar (Lodewijk Bergmans, Jan Bosch, Bedir Tekinerdogan) va ko'plab magistrlar edi. TRESE guruhi talabalari Tvente universiteti Gollandiyada. Bu Sino tiliga asoslangan edi [1][2] doktorlik dissertatsiyasida Mehmet Aksit tomonidan ishlab chiqilgan. O'shandan beri modelda ko'plab yutuqlarga erishildi.[3][4]

Dizayn

Kompozitsiya filtrlari modeli dizayni yadro ob'ekti modeli dizayni kengaytmasi hisoblanadi. Dizayn ikkita asosiy qismdan iborat - yadro yoki dastur qismi va tashqi qatlam yoki interfeys qismi. Kengaytmalar an'anaviy yadro ob'ekti modelidan kompozitsion filtrlar modelini ishlab chiqarish uchun interfeys qismida amalga oshiriladi.[5]

Amalga oshirish qismi

Amaliy qism yoki yadro uchta turdagi komponentlardan iborat bitta qatlamdan iborat:

  1. Instansiya o'zgaruvchilari
  2. Usullari
  3. Shartlar

Bundan tashqari, dastur va interfeys qatlamlarini ajratib turadigan inkapsulatsiya chegarasi mavjud.

Instansiya o'zgaruvchilari

Instance Variables - bu yadroning to'liq yopilgan yagona komponentlari. Ushbu o'zgaruvchilarga chegara tashqarisidan kirish imkoni yo'q. Ushbu modelda Instance o'zgaruvchilari har qanday turdagi bo'lishi mumkin. Dastlabki ma'lumotlar turlari, masalan, tamsayılar, belgilar va foydalanuvchi tomonidan aniqlangan ma'lumotlar turlari, masalan, sinflar va sanashlar Instance Variables deb hisoblanadi.

Usullari

Ob'ektning xatti-harakatlari uning usullari orqali amalga oshiriladi. Usul ikki qismdan iborat - metod tanasi va usul deklaratsiyasi. Ob'ektni chaqirishda bajarishi kutilayotgan harakatlar metod tanasida aniqlanadi. Usul deklaratsiyasi usul nomi, parametrlarning nomi va turi va qaytish turidan iborat. Usullar yadroda to'liq qamrab olinmagan va interfeys qismida ishlatilishi mumkin.

Dastlabki usul

Boshlang'ich usul bu funktsiyasiga o'xshash bo'lgan maxsus usul konstruktorlar boshqa ob'ektga yo'naltirilgan modellarda.

Shartlar

Mantiqiy qaytish turi va bo'sh parametrlar ro'yxati bo'lgan usul shart deb ataladi. Ob'ektning hozirgi holati to'g'risida ma'lumot berish uchun shartlardan foydalanish mumkin. Usullar singari, shartlar ham interfeys qismida ishlatilishi mumkin va ulardan foydalanishning aksariyati dastur qismidan tashqarida.

Interfeys qismi

Kompozitsiya filtrlari ob'ekti modelining interfeys qismi ikkita asosiy komponentdan iborat - kirish va chiqish filtrlari. Bundan tashqari, u ikkita qo'llab-quvvatlovchi komponentni o'z ichiga oladi - ichki va tashqi qismlar. Bundan tashqari, amalga oshirish qismidagi usullar va shartlarga interfeys qismidan ham kirish mumkin.

Filtrlar

Kirish va chiqish filtrlari dizayni jihatidan o'xshash, ammo funktsional jihatdan har xil. Kirish filtrlari ob'ektga yuborilgan xabarlar bilan ishlashni, chiqish filtrlari esa ob'ekt tomonidan yuboriladigan xabarlarni bajarish vazifasini bajaradi. Filtrlarning asosiy vazifasi - kelgan xabarlarni boshqarish va ularni keyingi qatlamga o'tkazish. Filtrlar qatlamlarda ishlab chiqilgan, xabar keyingi qatlamga o'tish uchun bir qatlamdan o'tishi kerak. Har bir qatlam turli xil filtrlardan iborat bo'lishi mumkin. Har bir filtr ma'lum bir naqshni belgilaydi. Naqsh kiruvchi yoki chiquvchi xabarga mos kelishi kerak bo'lgan sintaksisni belgilaydi. Xabar kelganda, ikkita imkoniyat mavjud - xabar filtr tomonidan rad qilinadi yoki filtr tomonidan boshqariladi. Xabarni rad etish yoki manipulyatsiya qilish usuli filtr turiga bog'liq.

Filtrni dizayni

Filtr filtr elementlari to'plami yordamida ishlab chiqilgan. Ushbu to'plam buyurtma qilingan, chunki har bir xabar chapdan o'ngga qo'llaniladi. Bu o'yin bo'lguncha davom etadi.

Har bir filtr elementi uchta komponentdan iborat - shart, mos keladigan qism va almashtirish qismi.

Vaziyat - Xabarni baholashni davom ettirish uchun element bo'lishi kerak bo'lgan holat.

Mos keladigan qism - baholangan xabar naqshga mos keladigan qism.

Almashtirish qismi - oldin mos keladigan xabar uchun almashtirish qiymatlari ko'rsatilgan qism.

Ichki

Ichki narsalar - bu kirish filtrlariga havola qilingan ichki o'rnatilgan ob'ektlar. Ular to'liq interfeys qismida joylashgan. Ular ob'ektni yaratish jarayonida avtomatik ravishda yaratiladi.

Tashqi

Tashqi narsalar - bu chiqish filtrlariga havola qilingan ichki o'rnatilgan ob'ektlar. Ular kompozitsion filtrlar modelidan tashqarida bo'lgan, ammo hanuzgacha uning doirasiga kiradigan ob'ektlarni e'lon qilish uchun ishlatiladi. Bunday ob'ektlarga misol sifatida global o'zgaruvchilarni keltirish mumkin.

SINA dasturlash tili

SINA dasturlash tili ob'ektga yo'naltirilgan dasturlash kompozitsiya filtrlari ob'ekti modelining xususiyatlarini amalga oshirish uchun ishlab chiqilgan til. Har bir SINA dasturi sinflarning to'plamidir, ularning har biri dastur va interfeysga ajratilishi mumkin. SINA-ning birinchi tadbiri Kichik munozarasi va faqat o'sha muhitda yugurdi.[6]

Ilovalar

Mavhum aloqa turlari

Abstrakt aloqa turidagi ob'ekt ob'ektlar orasidagi aloqa va o'zaro aloqalarni qisqartiradi. ACT-ning maqsadi dastur davomida qayta ishlatilishini yaxshilash, dastur detallarini alohida modullarda yashirish va qatlamli kommunikatsiya arxitekturasini modellashtirishning murakkabligini kamaytirishdir.

Mutaxassislar[JSSV? ] odatdagi ob'ektga yo'naltirilgan modellar juda past darajadagi deb hisoblaydilar, chunki ikkita ob'ekt orasidagi aloqa semantikasini boshqa ob'ektlarga osonlikcha etkazish mumkin emas. Shuning uchun qatlamdagi har bir tizim o'z qo'shni qatlamlari bilan ma'lumotlarni almashadigan qatlamli tizim me'morchiligini modellashtirish uchun ishlatilishi mumkin bo'lgan yuqori darajadagi til mexanizmiga ehtiyoj tug'ildi. Vorislik kabi mexanizmlar faqat ob'ekt darajasida mavhumlikni ta'minlaydi, ammo ob'ektlar orasidagi aloqani abstraktsiyalashda muvaffaqiyatsizlikka uchraydi.

Kompozitsiya filtrlari modeli ob'ektlar orasidagi mavhum aloqa uchun qo'llanildi. Ob'ekt moduli qabul qilingan va yuborilgan xabarlar bilan nima qilish kerakligini aniqlaydigan kirish va chiqish filtrlarini kiritish orqali kengaytiriladi.

ACTning muhim afzalliklari quyidagilarni o'z ichiga oladi:

  • ACT-lar kirish va chiqish filtrlari yordamida erishilgan xabarlarni ushlab turish va boshqarish uchun ishlatilishi mumkin
  • ACTlar o'zaro ta'sir kodini (aloqa tafsilotlari) alohida modullarda yashirish orqali dasturlarning murakkabligini pasaytiradi. Dasturchilar ushbu komponentlarni qayta ishlatish uchun ob'ektga yo'naltirilgan mexanizmlarni qo'llashlari mumkin.[7]

Ma'lumotlar bazasini birlashtirish modeli

Kompozitsiya filtrlari doimiy dinamik kabi ma'lumotlar bazasi xususiyatlarini birlashtirish uchun ishlatilishi mumkin ma'lumotlar tuzilmalar, ma'lumotlar almashinuvi, operatsiyalar, bir nechta ko'rinish va assotsiativ kirish ob'ekt - yo'naltirilgan til. Vorislik va topshirish kabi asosiy ob'ektga yo'naltirilgan mexanizmlar, shuningdek, kompozitsion filtrlar tomonidan ta'minlanadi. Ma'lumotlar bazasini birlashtirish modelida ma'lumotlar birlashishi, kesishishi, chiqarib tashlashi va tanlash kabi ma'lumotlar bazasi operatsiyalari ma'lumotlar kabi ob'ektga yo'naltirilgan mexanizmlarni ajratmasdan kompozitsion filtrlar yordamida ishlab chiqilgan. mavhumlik, kapsulalash, xabarni uzatish va meros olish.[8]

Boshqa dasturlar

Kompozitsiya filtrlarining ko'plab dasturlari mavjud (shu jumladan SmallTalk va Java amalga oshirish). Mavjud tatbiq etishlarning afzalligi shundaki, kontseptual va amalga oshirish modeli o'rtasida farq yo'q, bu ma'lum xususiyatlarning amalga oshirilishini tushunishni osonlashtiradi. Kamchilik shundaki, ushbu dasturlar sust va juda ko'p qo'shimcha xarajatlarga ega. Java-dagi bitta dastur, ya'ni ComposeJ, kompilyatsiya vaqtiga yo'naltirilgan manbalarni o'zgartirish yondashuvidan foydalanib, ushbu muammoni hal qildi.[9]

Shuningdek qarang

Tashqi havolalar

Adabiyotlar

  1. ^ Aksit, Mehmet (1989-03-23). "Ob'ektiv yo'naltirilgan tilni Sinoning dizayni to'g'risida". Tvente universiteti tadqiqot ma'lumotlari.
  2. ^ Aksit, Mehmet. "Sinay / stda ma'lumotlarni yig'ish mexanizmlari". ACM tugmachasini bosing. ISSN 0362-1340.
  3. ^ Aksit, Mehmet (1992). "Ob'ektga yo'naltirilgan til-ma'lumotlar bazasini integratsiya qilish modeli: kompozitsion-filtrlarga yondashuv". ECOOP '92 Ob'ektga yo'naltirilgan dasturlash bo'yicha Evropa konferentsiyasi. Kompyuter fanidan ma'ruza matnlari. 615. Springer Verlag, Berlin. 372-395 betlar. doi:10.1007 / BFb0053047. ISBN  3-540-55668-0.
  4. ^ Aksit, Mehmet (1992). "Ob'ektga yo'naltirilgan dasturiy ta'minotni ishlab chiqishdagi to'siqlar". ACM SIGPLAN xabarnomalari. 27 (10): 341–358. doi:10.1145/141937.141965.
  5. ^ "Kompozitsiya filtrlari ob'ekti modeli". trese.cs.utwente.nl. Olingan 18 aprel 2019.
  6. ^ Ziring, Nil. "Dasturlash tillari lug'ati". cgibin.erols.com. Olingan 2016-02-06.
  7. ^ Mehmet Aksit, Ken Vakita, Yan Bosch, Lodevijk Bergmans va Akinori Yonezava, "Kompozitsiya filtrlari yordamida ob'ektlarning o'zaro ta'sirini mavhumlashtirish", Tvente universiteti, Tokio universiteti va Tokio texnologiya instituti
  8. ^ Mehmet Aksit, Lodewijk Bergmans va Sinan Vural, "Ob'ektga yo'naltirilgan til-ma'lumotlar bazasini integratsiya qilish modeli: kompozitsion-filtrlarga yondashuv", Tvente universiteti, kompyuter fanlari bo'limi
  9. ^ Yoxannes Kornelis Vichman, "ComposeJ - Java tilida kompozitsion filtrlarni osonlashtirish uchun preprocessorni ishlab chiqish", Tvente universiteti