Sobes.tech
Junior — Middle

SOLID konseptsiyasining asosiy tamoyillari va ularning dasturiy ta'minot tizimlarini rivojlantirishga ta'siri haqida tushuntiring.

sobes.tech AI

AIdan javob

SOLID tamoyillari — bu obyektga yo'naltirilgan dizaynning beshta asosiy tamoyilidan iborat bo'lib, ular moslashuvchan, kengaytiriladigan va qo'llab-quvvatlanadigan tizimlarni yaratishga yordam beradi:

  1. Yagona javobgarlik tamoyili (SRP) — Har bir sinf faqat bitta o'zgarish sababiga ega bo'lishi kerak, ya'ni ma'lum bir vazifaga javob berishi kerak.

  2. Ochiq/Yopiq tamoyili (OCP) — Sinflar kengaytirishga ochiq, lekin o'zgartirishga yopiq bo'lishi kerak.

  3. Liskov o'rnini bosish tamoyili (LSP) — Subklassning ob'ektlari asosiy sinfning ob'ektlarini almashtirishi mumkin, bu dastur to'g'riligini buzmasdan.

  4. Interfeyslarni ajratish tamoyili (ISP) — Mijozlar foydalanmaydigan interfeyslar bilan bog'liq bo'lmasligi kerak. Bir nechta maxsuslashtirilgan interfeyslar bo'lishi yaxshiroq, umumiy interfeys emas.

  5. Qaramliklarni teskari qilish tamoyili (DIP) — Yuqori darajadagi modullar past darajadagi modullarga bog'liq bo'lmasligi kerak; ikkalasi ham abstraktsiyalarga bog'liq bo'lishi kerak.

Tashkiliy ta'siri:

  • Kodning o'qilishi va qo'llab-quvvatlanishini yaxshilaydi.
  • Test qilish va refaktoringni osonlashtiradi.
  • Mavjud kodni o'zgartirmasdan funksionallikni kengaytirishga imkon beradi.

SRP misoli:

// Yomon: sinf logika va chiqishni boshqaradi
class Report {
    public string Data { get; set; }
    public void Print() { /* ekran chiqarish */ }
}

// Yaxshi: javobgarliklarni ajratish
class Report {
    public string Data { get; set; }
}
class ReportPrinter {
    public void Print(Report report) { /* ekran chiqarish */ }
}