Shizofreniya (ob'ektga yo'naltirilgan dasturlash) - Schizophrenia (object-oriented programming)

Ob'ekt shizofreniyasi yoki o'z-o'zidan shizofreniya kelib chiqadigan asoratdir delegatsiya va tegishli texnikalar ob'ektga yo'naltirilgan dasturlash, qayerda o'zini o'zi/bu bir nechta ob'ektga murojaat qilishi mumkin. Jamiyatning chalkashligi bilan metafora orqali dissotsiativ identifikatsiyani buzilishi ning psixiatrik tashxisi bilan shizofreniya, avvalgisi "bo'linadigan shaxslar" bilan bog'liq bo'lib, ushbu konfiguratsiya deyiladi ob'ektiv shizofreniya yoki o'z-o'zidan shizofreniya ob'ektga yo'naltirilgan dasturlashda.[1]

Umumiy nuqtai

An ob'ekt ma'lumotlar va xatti-harakatlarni birlashtirgan va o'ziga xos xususiyatga ega bo'lgan hisoblash kontseptsiyasi sifatida ta'riflanishi mumkin. Yilda sinfga asoslangan dasturlash, ob'ektlar sinf tizimida qurilgan, bu erda ob'ekt sinfning namunasi hisoblanadi. Sinflar o'z navbatida bog'liq bo'lishi mumkin meros olish: a asosiy sinf ob'ektning asosiy yoki odatiy xatti-harakatini ta'minlaydi va ob'ektlarni yaratish uchun shablon vazifasini bajaradi, a olingan sinf bazaviy sinfning xatti-harakatlarini bekor qilish uchun ishlatilishi mumkin va xatti-harakatlari asosiy sinfning xatti-harakatlarini yaxshilaydigan ob'ektlar uchun shablon sifatida ishlatilishi mumkin.

Sinflar va merosga alternativa prototiplar va delegatsiya,[2] ichida ishlatiladigan prototipga asoslangan dasturlash va yanada dinamikroq. Bir sinfni boshqasini takomillashtirish uchun ishlatish o'rniga, delegatsiya bitta ob'ektga boshqasining xatti-harakatlarini bekor qilishga imkon beradi. Asl ob'ekt a (olingan sinf xatti-harakatlariga o'xshash) mumkin delegat uning ba'zi usullari boshqa ob'ektga b (asosiy sinf xatti-harakatlariga o'xshash). Agar a uning delegatlari foo usuli bar usuli b, keyin har qanday chaqiruv foo kuni a sabab bo'ladi b 's bar ijro etish usuli. Biroq, bar kontekstida ijro etadi a ob'ekt, masalan, uning o'zini o'zi identifikatorga ishora qiladi a o'rniga b.

Delegatsiyadan foydalanganda savol tug'iladi: qiymati nima? o'zini o'zi ob'ekt bo'yicha usulni baholashda a, ob'ektdagi usulga topshirilgan b? Shaxsiyat ikkiga bo'lingan: u murojaat qilishi mumkin a yoki b. E'tibor bering, ikkala ob'ekt alohida bo'lsa va alohida jismoniy identifikatsiyaga ega bo'lsa, o'zini o'zi (aniq yoki yopiq tarzda ishlatilganmi) noaniq.

Tarix va munozara

Herrmann[3] bu atama Uilyam Xarrison, IBM Research tomonidan 1997 yil may oyida veb-sahifalar to'plamida kiritilgan bo'lib, unda ba'zi umumiy muammolarni muhokama qilgan. dizayn naqshlari (ushbu veb-sahifalar endi ommaga ochiq emas). Ushbu misollarda muammo yanada og'irlashdi, chunki odatdagi echimlar kuchsizroq shakldan foydalanishi mumkin edi delegatsiya (ba'zan chaqiriladi ekspeditorlik ) asl qabul qilish ob'ekti to'g'risida ma'lumot, aslida topshirish paytida yo'qolgan. Bu erda ekspeditorlik eng asosiy oqim ekanligi uchun qarzdor ob'ektga yo'naltirilgan dasturlash tillari delegatsiyaning kuchliroq shaklini qo'llab-quvvatlamang.Harrison va boshqalar taklif qildi mavzuga yo'naltirilgan dasturlash statik tarkibi bilan ob'ektiv shizofreniya bilan bog'liq har qanday muammolardan qochadigan echim sifatida. Boshqa tomondan, Herrmann tilning kontekstual xususiyatga ega ekanligini ko'rsatmoqda rollar shunday tarzda ishlab chiqilishi mumkinki, ob'ekt shizofreniyasining yuzaga kelishi mumkin bo'lgan muammolari ahamiyatsiz bo'lib, delegatsiyani xatti-harakatlarni o'rtoqlashish vositasi sifatida ishlatsa ham. rol ob'ekti va unga bog'liq asosiy ob'ekt.

Shuningdek qarang

Adabiyotlar

  1. ^ Uwe Aßmann, Invaziv dasturiy ta'minot tarkibi, Springer-Verlag, 2003, p. 39.
  2. ^ Lynn Andrea Shteyn, Delegatsiya - bu meros. Ob'ektga yo'naltirilgan dasturlash tizimlari tillari va ilovalari bo'yicha konferentsiya, Orlando, Florida, 1987, AQSh, 138 - 146 betlar.
  3. ^ Stefan Herrmann, Ob'ekt shizofreniyasini demistifikatsiya qilish, protsessida MASPEGHI ustaxonasi da ECOOP 2010