SOLID tamoillari
SOLID — mnemonik qisqartma. Bu ob'ektga yo'naltirilgan dizaynning beshta asosiy tamoyillarini aniqlashga yordam beradi:
Yagona javobgarlik printsipi
Ey qalam-yopiq tamoyil
L iskov almashtirish printsipi
Segregatsiya printsipi interfeysi
Bog'liqlik Inversiya printsipi
Keyinchalik ularning har birini alohida muhokama qilamiz. Har biri uchun men yomon va yaxshi kod misollarini keltiraman. Ushbu misollar Android uchun Kotlin tilidan foydalangan holda yozilgan.
Sinf faqat bitta mas'uliyatga ega bo'lishi kerak.
Har bir sinf yoki modul ilova tomonidan taqdim etilgan funksiyalarning bir qismi uchun javobgar bo’lishi kerak. Shunday qilib, u bir narsani hal qilganda, uni o'zgartirish uchun faqat bitta asosiy sabab bo'lishi kerak. Agar sizning sinfingiz yoki modulingiz bir nechta ishni bajarsa, siz funktsiyalarni alohida-alohida bo'lishingiz kerak.
Ushbu tamoyilni yaxshiroq tushunish uchun men Shveytsariya armiyasi pichog'ini misol qilib olaman. Ushbu pichoq asosiy pichoqdan tashqari bir nechta funktsiyalari bilan mashhur. Uning ichiga o'rnatilgan boshqa asboblar, masalan, tornavidalar, konserva ochuvchi va boshqalar mavjud. Bu erda siz uchun tabiiy savol shundaki, nega men ushbu pichoqni bitta funksionallik uchun namuna sifatida taklif qilyapman? Ammo bir lahza bu haqda o'ylab ko'ring. Ushbu pichoqning yana bir asosiy xususiyati - cho'ntak o'lchami bo'lganda harakatchanlik. Shunday qilib, u bir nechta turli funktsiyalarni taklif qilsa ham, u o'zining asosiy maqsadiga mos keladi va uni siz bilan qulay tarzda olib ketish uchun etarlicha kichik bo'ladi.Xuddi shu qoidalar dasturlash bilan bog'liq. Sinf yoki modulni yaratganingizda, u qandaydir asosiy global maqsadga ega bo'lishi kerak. Shu bilan birga, funksionallikni ajratib, hamma narsani juda soddalashtirishga urinayotganda ortiqcha o'ynay olmaysiz. Shunday ekan, esda tuting, muvozanatni saqlang.
Ushbu tamoyil shuni ko'rsatadiki, siz sinflar, modullar va funktsiyalar kabi barcha dasturiy ta'minot qismlarini yozganingizda, ularni kengaytirish uchun ochiq, lekin har qanday o'zgartirish uchun yopiq qilishingiz kerak. Bu nimani anglatadi? Aytaylik, biz ishchilar sinfini yaratamiz. Agar biz yangi funksiyalar qo'shishimiz yoki ba'zi o'zgarishlar qilishimiz kerak bo'lsa, bu sinfni sozlashning hojati yo'q. Buning o'rniga biz barcha kerakli xususiyatlarni osongina qo'shishimiz mumkin bo'lgan yangi kichik sinfni yaratish orqali ushbu sinfni kengaytirishimiz kerak. Xususiyatlar har doim pastki sinf bekor qilishi mumkin bo'lgan tarzda parametrlangan bo'lishi kerak. Feedback Manager Keling, foydalanuvchi uchun boshqa turdagi maxsus xabarni ko'rsatish uchun maxsus sinf yaratadigan misolni ko'rib chiqaylik.
Ochiq-yopiq printsip men quyida gaplashadigan keyingi ikkita tamoyilning maqsadlarini umumlashtiradi. Shunday qilib, keling, ularga o'tamiz.
Do'stlaringiz bilan baham: |