Sobes.tech
Junior — Middle

Selgitage SOLID kontseptsiooni aluseks olevad põhimõtted ja nende mõju tarkvarasüsteemide arendamisele.

sobes.tech AI

Vastus AI-lt

SOLID põhimõtted on viie põhielemendi kogum objektorienteeritud disaini, mis aitavad luua paindlikke, laiendatavaid ja hooldatavaid süsteeme:

  1. Ühe vastutuse põhimõte (SRP) — Iga klass peaks vastutama ainult ühe konkreetse ülesande eest, see tähendab, et sellel peaks olema ainult üks põhjus muutuda.

  2. Ava-sulge põhimõte (OCP) — Klassid peaksid olema avatud laiendamiseks, kuid suletud muutmiseks.

  3. Liskovi asendamise põhimõte (LSP) — Alampärased objektid peaksid olema asendatavad baasklasside objektidega ilma programmi korrektsust rikkumata.

  4. Liidese eraldamise põhimõte (ISP) — Kliendid ei tohiks sõltuda liidestest, mida nad ei kasuta. Parema lähenemisena on mitu spetsialiseeritud liidest kui üks universaalne.

  5. Sõltuvuse vastupidise põhimõte (DIP) — Kõrgema taseme moodulid ei peaks sõltuma madalama taseme moodulitest; mõlemad peaksid sõltuma abstraktsioonidest.

Mõju arendusele:

  • Parandab koodi loetavust ja hooldatavust.
  • Kergendab testimist ja refaktoreerimist.
  • Annab võimaluse funktsionaalsust hõlpsasti laiendada ilma olemasolevat koodi muutmata.

SRP näide:

// Halvasti: klass vastutab nii loogika kui ka väljundi eest
class Report {
    public string Data { get; set; }
    public void Print() { /* väljund ekraanile */ }
}

// Hea: vastutuse jagamine
class Report {
    public string Data { get; set; }
}
class ReportPrinter {
    public void Print(Report report) { /* väljund ekraanile */ }
}