Sobes.tech
Junior — Middle

Vysvětlete principy, které stojí na základě konceptu SOLID, a jejich vliv na vývoj softwarových systémů.

sobes.tech AI

Odpověď od AI

Principy SOLID jsou soubor pěti základních principů objektově orientovaného návrhu, které pomáhají vytvářet flexibilní, rozšiřitelné a udržovatelné systémy:

  1. Princip jediné odpovědnosti (SRP) — Každá třída by měla mít pouze jeden důvod ke změně, tedy být odpovědná za jeden konkrétní úkol.

  2. Princip otevřenosti/zavřenosti (OCP) — Třídy by měly být otevřené pro rozšíření, ale uzavřené pro modifikaci.

  3. Princip substituce Liskov (LSP) — Objekt třídy odvozené by měl být schopen nahradit objekt třídy základní bez narušení správnosti programu.

  4. Princip segregace rozhraní (ISP) — Klienti by neměli záviset na rozhraních, která nepoužívají. Je lepší mít několik specializovaných rozhraní než jedno univerzální.

  5. Princip závislostní inverze (DIP) — Vyšší vrstvy by neměly záviset na nižších vrstvách; obě by měly záviset na abstrakcích.

Dopad na vývoj:

  • Zlepšuje čitelnost a údržbu kódu.
  • Usnadňuje testování a refaktoring.
  • Umožňuje snadné rozšiřování funkčnosti bez změny stávajícího kódu.

Příklad SRP:

// Špatně: třída řídí logiku i výstup
class Report {
    public string Data { get; set; }
    public void Print() { /* výstup na obrazovku */ }
}

// Dobře: oddělení odpovědností
class Report {
    public string Data { get; set; }
}
class ReportPrinter {
    public void Print(Report report) { /* výstup na obrazovku */ }
}