Xudo e'tiroz bildiradi - God object

Yilda ob'ektga yo'naltirilgan dasturlash, a Xudo e'tiroz bildiradi bu ob'ekt bu juda ko'p narsani biladi yoki juda ko'p ishlaydi. Xudo ob'ekti - bu misol naqshga qarshi.

Umumiy dasturlash texnikasi: alohida katta muammo, bir nechta kichik muammolarga (a strategiyani ajratish va mag'lub etish ) va ularning har biri uchun echimlar yaratish. Kichikroq muammolarni hal qilgandan so'ng, katta muammo umuman hal qilindi. Shuning uchun kichik bir muammo uchun berilgan ob'ekt faqat o'zi haqida bilishi kerak. Xuddi shunday, ob'ekt hal qilishi kerak bo'lgan birgina muammolar to'plami mavjud: uning Shaxsiy muammolar. Bu ham quyidagicha Yagona javobgarlik printsipi.

Aksincha, Xudo ob'ektini ishlatadigan dastur bu yondashuvga amal qilmaydi. Bunday dasturning aksariyat funktsional imkoniyatlari bitta "hamma biladigan" ob'ektga kodlangan bo'lib, u butun dastur to'g'risidagi ma'lumotlarning aksariyatini saqlaydi va shu bilan birga usullari ushbu ma'lumotlarni manipulyatsiya qilish uchun. Ushbu ob'ekt juda ko'p ma'lumotlarga ega va juda ko'p usullarni talab qilganligi sababli, uning dasturdagi o'rni Xudoga o'xshash (hamma narsani biluvchi va hamma narsani qamrab oluvchi) bo'ladi. O'zaro to'g'ridan-to'g'ri aloqa qiladigan dastur ob'ektlari o'rniga, boshqa ob'ektlar o'zlarining ma'lumotlari va o'zaro ta'sirlarining ko'pi uchun yagona Xudo ob'ektiga ishonadilar. Ushbu ob'ekt bo'lgani uchun mahkam bog'langan boshqa kodlarning ko'pchiligiga (havola qilingan), parvarishlash yanada teng bo'lingan dasturlash dizayniga qaraganda ancha qiyinlashadi. Ob'ektga bitta odat uchun qilingan o'zgarishlar boshqa bog'liq bo'lmagan odatlarga kutilmagan ta'sir ko'rsatishi mumkin.

Xudo ob'ekti - bu ishlatilmaslikning ob'ektiv yo'naltirilgan analogidir subroutines yilda protsessual dasturlash tillari yoki juda ko'pdan foydalanish global o'zgaruvchilar davlat ma'lumotlarini saqlash uchun.

Xudo ob'ektini yaratish odatda yomon dasturlash amaliyoti deb hisoblansa-da, ushbu uslub vaqti-vaqti bilan qattiq dasturlash muhiti uchun ishlatiladi (masalan. mikrokontrollerlar ), bu erda ishlashning kuchayishi va boshqaruvning markazlashtirilishi parvarishlash va dasturlash nafisligidan ko'ra muhimroqdir.

Shuningdek qarang

Qo'shimcha o'qish

  • Riel, Artur J. (1996). "3-bob: Harakatga yo'naltirilgan va ob'ektga yo'naltirilgan dasturlarning topologiyalari". Ob'ektga yo'naltirilgan dizayn evristikasi. Boston, Massachusets: Addison-Uesli. ISBN  0-201-63385-X. 3.2: tizimingizda xudo sinflari / moslamalarini yaratmang. Ismi haydovchi, menejer, tizim yoki quyi tizimdan iborat abstraktsiyaga juda shubha bilan qarang.
  • Anti-naqshlar va eng yomon amaliyotlar - Monster ob'ektlari.