MVC Murakkab dizayn namunasi sifatida
Model-View-Controller - bu yana bir nechta asosiy dizayn naqshlaridan tashkil topgan dizayn naqshidir. Ushbu asosiy naqshlar MVC ilovasiga xos bo'lgan funktsional ajratish va aloqa yo'llarini aniqlash uchun birgalikda ishlaydi. Biroq, MVC ning an'anaviy tushunchasi Kakao tayinlaganidan farq qiladigan asosiy naqshlar to'plamini belgilaydi. Farqi, birinchi navbatda, boshqaruvchiga berilgan rollarda va ilovaning ko'rish ob'ektlarida.Asl (Smalltalk) kontseptsiyasida MVC Kompozit, Strategiya va Observer naqshlaridan iborat. Kompozit - Ilovadagi ko'rish ob'ektlari, aslida, muvofiqlashtirilgan rejimda (ya'ni ko'rish ierarxiyasi) birgalikda ishlaydigan ichki ko'rinishlarning kompozitsiyasidir. Ushbu displey komponentlari oynadan tortib, jadval ko'rinishi kabi murakkab ko'rinishlarga, tugmalar kabi alohida ko'rinishlarga qadar bo'ladi. Foydalanuvchi kiritish va ko'rsatish kompozit strukturaning istalgan darajasida amalga oshirilishi mumkin. Strategiya - boshqaruvchi ob'ekti bir yoki bir nechta ko'rish ob'ektlari uchun strategiyani amalga oshiradi. Ko'rish ob'ekti o'zining vizual jihatlarini saqlab qolish bilan chegaralanadi va interfeys harakatining dasturga xos ma'nosi bo'yicha barcha qarorlarni boshqaruvchiga topshiradi. Observer - Model ob'ekti ilovada manfaatdor ob'ektlarni saqlaydi - odatda ob'ektlarni ko'rish - uning holatidagi o'zgarishlar haqida maslahat beradi. Kompozit, Strategiya va Observer naqshlarining birgalikda ishlashining an'anaviy usuli 7-1-rasmda tasvirlangan: Foydalanuvchi kompozit tuzilmaning qaysidir darajasida ko'rinishni boshqaradi va natijada hodisa hosil bo'ladi. Tekshiruvchi ob'ekt hodisani qabul qiladi va uni dasturga xos tarzda sharhlaydi, ya'ni u strategiyani qo'llaydi. Ushbu strategiya model ob'ektining holatini o'zgartirishni so'rash (xabar orqali) yoki ko'rish ob'ektini (kompozit tuzilmaning ba'zi darajasida) xatti-harakati yoki ko'rinishini o'zgartirishni so'rash bo'lishi mumkin. Namunaviy ob'ekt, o'z navbatida, uning holati o'zgarganda, kuzatuvchi sifatida ro'yxatdan o'tgan barcha ob'ektlarni xabardor qiladi; agar kuzatuvchi ko'rish ob'ekti bo'lsa, u o'z ko'rinishini mos ravishda yangilashi mumkin.
7-1-rasm MVC ning an'anaviy versiyasi birikma naqsh sifatida
Murakkab naqsh sifatida MVC ning kakao versiyasi an'anaviy versiyaga o'xshashliklarga ega va aslida 7-1-rasmdagi diagramma asosida ishchi dasturni qurish juda mumkin. Bog'lash texnologiyasidan foydalanib, siz osongina Cocoa MVC ilovasini yaratishingiz mumkin, uning ko'rinishi holat o'zgarishlari haqida bildirishnomalarni olish uchun model ob'ektlarini bevosita kuzatadi. Biroq, ushbu dizaynda nazariy muammo mavjud. Ko'rish ob'ektlari va model ob'ektlari ilovadagi eng ko'p qayta foydalanish mumkin bo'lgan ob'ektlar bo'lishi kerak. Ko'rish ob'ektlari operatsion tizim va tizim qo'llab-quvvatlaydigan ilovalarning "ko'rinishi va hissini" ifodalaydi; tashqi ko'rinish va xulq-atvorning izchilligi muhim va bu juda qayta ishlatilishi mumkin bo'lgan narsalarni talab qiladi. Model ob'ektlari ta'rifi bo'yicha muammoli domen bilan bog'liq ma'lumotlarni qamrab oladi va bu ma'lumotlar ustida operatsiyalarni bajaradi. Dizayn nuqtai nazaridan, model va ko'rinishdagi ob'ektlarni bir-biridan ajratib qo'ygan ma'qul, chunki bu ularning qayta foydalanish imkoniyatini oshiradi.
Ko'pgina Kakao ilovalarida model ob'ektlaridagi holat o'zgarishi haqidagi bildirishnomalar ob'ektlarni boshqaruvchi ob'ektlar orqali ko'rish uchun yuboriladi. 7-2-rasmda yana ikkita asosiy dizayn naqshlari ishtirok etganiga qaramay, ancha toza ko'rinadigan ushbu turli xil konfiguratsiya ko'rsatilgan.
Shakl 7-2 MVC ning kakao versiyasi aralash dizayn namunasi sifatida
Ushbu qo'shma dizayn namunasidagi boshqaruvchi ob'ekt Mediator naqshini hamda Strategiya naqshini o'z ichiga oladi; u ikkala yo'nalishda model va ko'rish ob'ektlari o'rtasida ma'lumotlar oqimiga vositachilik qiladi. Model holatidagi o'zgarishlar ob'ektlarni dasturning boshqaruvchi ob'ektlari orqali ko'rish uchun xabar qilinadi. Bundan tashqari, ko'rish ob'ektlari maqsadli harakat mexanizmini amalga oshirish orqali Buyruqlar naqshini o'z ichiga oladi.
7-2-rasmda ko'rsatilgan qayta ko'rib chiqilgan qo'shma dizayn namunasi uchun amaliy sabablar bilan bir qatorda nazariy sabablar ham mavjud, ayniqsa Mediator dizayn namunasi haqida gap ketganda. Vositachi kontrollerlar NSController ning aniq quyi sinflaridan kelib chiqadi va bu sinflar Mediator naqshini amalga oshirishdan tashqari, ilovalar foydalanishi kerak bo'lgan ko'plab xususiyatlarni taklif qiladi, masalan, tanlovlar va to'ldiruvchi qiymatlarni boshqarish. Va agar siz bog'lash texnologiyasidan foydalanmaslikni tanlasangiz, ko'rish ob'ektingiz model ob'ektidan bildirishnomalarni olish uchun Kakao bildirishnoma markazi kabi mexanizmdan foydalanishi mumkin. Lekin bu sizga model ob'ekti tomonidan e'lon qilingan bildirishnomalar haqidagi bilimlarni qo'shish uchun maxsus ko'rinish pastki sinfini yaratishni talab qiladi. Yaxshi ishlab chiqilgan Cocoa MVC ilovasida muvofiqlashtiruvchi kontroller ob'ektlari ko'pincha nib fayllarida arxivlangan vositachi kontrollerlarga ega. 7-3-rasmda ikkita turdagi boshqaruvchi ob'ektlar o'rtasidagi munosabatlar ko'rsatilgan.
7-3-rasm Muvofiqlashtiruvchi kontroller nib faylining egasi sifatida
Do'stlaringiz bilan baham: |