Sobes.tech
Junior — Middle

Принсипҳои асосии консепсияи SOLID ва таъсири онҳо ба таҳияи системаҳои нармафзорро шарҳ диҳед.

sobes.tech AI

Ҷавоб аз AI

Принципҳои SOLID — ин маҷмӯи панҷ принсипи асосии тарҳи объектӣ мебошанд, ки кӯмак мекунанд системаҳоро чандир, васеъшаванда ва нигоҳдории осон созанд:

  1. Принсипи масъулияти ягона (SRP) — Ҳар синф бояд танҳо як сабаби тағирот дошта бошад, яъне барои вазифаи муайян масъул бошад.

  2. Принсипи кушод/баста (OCP) — Синфҳо бояд барои васеъшавӣ кушода, аммо барои тағирот баста бошанд.

  3. Принсипи ивазкунии Лисков (LSP) — Объектҳои синфи зер бояд метавонанд ҷойгузини объектҳои синфи асосӣ бошанд бе вайрон кардани дурустии барнома.

  4. Принсипи ҷудоии интерфейсҳо (ISP) — Мизоҷон набояд аз интерфейсҳое, ки онҳо истифода намебаранд, вобаста бошанд. Беҳтар аст, ки чандин интерфейси махсусгардоштаро дошта бошанд, на як умумӣ.

  5. Принсипи инверсияи вобастагиҳо (DIP) — Модулҳои сатҳи боло набояд аз модулҳои сатҳи поён вобаста бошанд; ҳарду бояд вобаста ба абстраксияҳо бошанд.

Таъсир ба таҳия:

  • Беҳтар кардани хонданпазирӣ ва нигоҳдории коди.
  • Осон кардани санҷиш ва рефакторинг.
  • Имкон медиҳад, ки функсионалиро ба осонӣ васеъ кардан бе тағир додани коди мавҷуда.

Маслиҳат барои SRP:

// Нодуруст: синф логика ва баромадро идора мекунад
class Report {
    public string Data { get; set; }
    public void Print() { /* баромад дар экран */ }
}

// Дуруст: ҷудо кардани масъулиятҳо
class Report {
    public string Data { get; set; }
}
class ReportPrinter {
    public void Print(Report report) { /* баромад дар экран */ }
}