Mavzu: Martin ko'rsatkichlari
Klass - bu mavhumlikning turli darajalarida va turli usullarda (masalan, operatsiyalar ro'yxati, holatlar ketma-ketligi yoki o'zaro ta'sirlar ketma-ketligi sifatida) joylashtirilishi mumkin.
Shu munosabat bilan ob'ektga yo'naltirilgan ko'rsatkichlar uchun abstraktsiyalarni terminologiyada, sinf o'lchovlarida ifodalash ko'proq mos keladi. Bunday tasvirlash misollari ilovadagi sinf misollari soni, ilovadagi umumiy sinflar soni, umumiy sinflar sonining umumiy bo'lmagan sinflar soniga nisbatini o'z ichiga oladi.
1995 yilda amerikalik dasturiy ta'minot bo'yicha maslahatchi Robert Sesil Martin ob'ektga yo'naltirilgan dizaynda (SOLID metodologiyasi deb ataladigan) beshta asosiy sinf dizayn tamoyillarini taklif qildi va Martin o'lchovlari deb nomlangan ko'rsatkichlar to'plamini ishlab chiqdi.
Dasturlarda sinfdan kamdan-kam hollarda boshqa sinflardan ajratilgan holda qayta foydalanish mumkin. Deyarli har doim sinf o'zaro aloqada bo'lgan va uni ajratish juda qiyin bo'lgan sinflar guruhiga ega. Bunday sinflarni qayta ishlatish uchun siz butun sinflar guruhini qayta ishlatishingiz kerak. Bunday sinflar guruhining (u sinflar toifasi deb ataladi) muvofiqligi etarlicha yuqori va uning mavjudligi uchun quyidagi shartlar bajarilishi kerak:
• toifadagi sinflar alohida misollarni o'zgartirishga urinishlardan himoyalangan. Bu shuni anglatadiki, agar bitta sinf
o'zgartirish kerak bo'lsa, bu toifadagi barcha sinflar o'zgarishi ehtimoli yuqori. Agar sinflardan birortasi qandaydir o'zgarishlarga ochiq bo'lsa, ularning barchasi shunday o'zgarishlarga ochiq;
• toifadagi sinflar faqat birgalikda qayta ishlatiladi. Ular bir-biriga shunchalik bog'liqki, ularni bir-biridan ajratib bo'lmaydi. Shunday qilib, agar toifadagi bitta sinfdan qayta foydalanishga urinilsa, bu toifadagi barcha boshqa sinflar ham shu sinf bilan birga qayta foydalaniladi;
• Kategoriyadagi sinflar qandaydir umumiy funktsiyani ta'minlaydi yoki umumiy maqsadga erishadi.
Martinning so'zlariga ko'ra, toifaning mas'uliyati, mustaqilligi va barqarorligi ushbu toifa bilan o'zaro bog'liq bo'lgan ba'zi bog'liqliklarni sanash orqali o'lchanishi mumkin. Ushbu bog'liqliklar asosiy bo'lmaganligi sababli, biz ularni ko'rib chiqmaymiz.
Martin ob'ektga yo'naltirilgan dasturlashda dastur samaradorligini baholash uchun quyidagi ko'rsatkichlarni taklif qildi:
• Ca (markaziy bog'lanish) - muayyan toifadan tashqari, undagi sinflarga bog'liq bo'lgan sinflar sonini aniqlaydigan ko'rsatkich;
• Ce (markazdan qochma debriyaj) - ma'lum bir toifadagi sinflar sonini, undan tashqaridagi sinflarga bog'liqligini baholovchi ko'rsatkich;
• / (beqarorlik) - ifodaga muvofiq aniqlangan hisoblangan ko'rsatkich
Ushbu ko'rsatkich [0, 1] qiymatlari oralig'iga ega: metrikaning qiymati I - 0 eng barqaror toifani va I = 1 eng beqaror toifani bildiradi.
Belgilangan ko'rsatkichlarga qo'shimcha ravishda, toifaning mavhumligini baholashga imkon beruvchi A o'lchovini aniqlash mumkin (agar toifa mavhum bo'lsa, u juda moslashuvchan va osongina kengaytirilishi mumkin):
~ toifadagi mavhum sinflar soni; pAP - toifadagi sinflarning umumiy soni.
Elektr uchun to'lovni tavsiflovchi sinfni aniqlash kerak. Sinf ichida quyidagi maydonlar taqdim etilishi kerak:
• to'lovchining familiyasi;
• to'langan oy uchun elektr energiyasi iste'moli;
• me'yoriy o'rtacha oylik iste'mol;
• tarif (bir kilovatt-soat narxi).
Quyidagi usullar tavsiya etiladi:
• to'lov miqdorini hisoblash;
• bitta to'lov bo'yicha (to'lov turi, familiyasi, miqdori, iste'moli) umumiy ma'lumotlarini shakllantirish.
To'lov hisoblagich ko'rsatkichlari bo'yicha yoki me'yoriy belgilangan o'rtacha oylik iste'mol bo'yicha amalga oshirilishi mumkin. Dasturning amal qilish muddati davomida tarif va me'yoriy belgilangan o'rtacha oylik iste'mol o'zgarmaydi. Muayyan to'lovni yaratish uchun tegishli konstruktorni taqdim eting.
Barcha to'lovlar arxivda bo'lishi kerak. Arxivni saqlash bo'yicha so'rovlar "So'rov" sinfining statik usullari bilan amalga oshiriladi:
to'lovlarni arxivga kiritish haqida. To'lov ma'lumotlari klaviaturadan kiritiladi. Hisoblagichning salbiy ko'rsatkichini kiritish me'yoriy belgilangan o'rtacha oylik iste'molga muvofiq to'lovni anglatadi;
• arxivdan yig'ma ma'lumotlarni chiqarish.
Arxiv ob'ektlar massivi sifatida modellashtirilgan.
"To'lovlar" asosiy sinfida to'lovlar arxivi shakllantirilishi kerak. Arxiv ma'lumotlariga ko'ra, to'lovlar to'g'risida yig'ma ma'lumot berilishini ta'minlang.
Muammoni hal qilishda dasturning dastlabki kodini ishlab chiqish, shuningdek, Martinning ob'ektga yo'naltirilgan ko'rsatkichlari asosida dasturning xarakteristikalari baholarini aniqlash kerak.
Keling, dastur sinflarining tashkiliy tuzilmasi tafsilotlarini va ularning ulanishini tahlil qilish asosida ob'ektga yo'naltirilgan dasturning murakkablik darajasini baholashga imkon beruvchi Martin ko'rsatkichlari yordamida uning sifatini baholash uchun dastur matnini tahlil qilaylik, chunki barcha sinflar o'zaro ta'sirda ishlaydi.
Dasturning manba kodi muammoni hal qilish uchun mo'ljallangan, bitta toifaga tegishli bo'lishi mumkin bo'lgan uchta sinfni o'z ichiga oladi, ularning maqsadi elektr energiyasi uchun to'lovlar miqdorini hisoblashdir.
Bularga quyidagi sinflar kiradi (4.1-rasmga qarang):
• Elektr klassi (6-qator) - elektr energiyasi uchun to'lov ob'ektining instantsiyasini belgilaydigan sinf;
• sinf so'rovi (32-satr) - Electro tipidagi ob'ektlar haqidagi ma'lumotlarni qayta ishlash usullarini o'z ichiga olgan sinf;
• toʻlovlar sinfi (62-qator) — Request sinfi usullaridan foydalangan holda Electro tipidagi obyektlar massivlaridan maʼlumotlarni qayta ishlashning asosiy usulini oʻz ichiga olgan sinf.
Do'stlaringiz bilan baham: |