solid

Skratka SOLID označuje sadu piatich princípov objektovo orientovaného programovania (OOP), ktoré pomáhajú vývojárom písať udržiavateľný, čitateľný a flexibilný kód. Tieto princípy definoval Robert C. Martin (známy ako Uncle Bob) a sú základom dobre navrhnutého softvéru.

SOLID princípy:

1.S – Single Responsibility Principle (SRP):

Princíp jednej zodpovednosti:

Každá trieda by mala mať iba jednu zodpovednosť, resp. jednu jasne definovanú úlohu.

Cieľ: Uľahčiť údržbu a zmenu kódu, keď sa zmenia požiadavky.

Príklad:

class Report:

    def generate(self):

        # Generovanie reportu

class ReportPrinter:

    def print(self, report):

        # Tlač reportu

2.O – Open/Closed Principle (OCP):

Princíp otvorenosti/zatvorenosti:

Triedy, moduly a funkcie by mali byť otvorené na rozšírenie, ale zatvorené na modifikáciu.

Cieľ: Umožniť rozšírenie funkcionality bez úprav existujúceho kódu.

Príklad:

class Shape:

    def area(self):

        pass

class Rectangle(Shape):

    def area(self):

        return self.width * self.height

3.L – Liskov Substitution Principle (LSP):

Princíp Liskovovej substitúcie:

Subtriedy by mali byť nahraditeľné za svoje nadradené triedy bez toho, aby sa narušila funkcionalita programu.

Cieľ: Zachovať konzistentnosť a správne správanie pri dedičnosti.

Príklad:

Ak trieda Bird má metódu fly, potom subtrieda Sparrow musí implementovať fly konzistentne.

4.I – Interface Segregation Principle (ISP):

Princíp segregácie rozhraní:

Rozhrania by mali byť špecifické a malé, aby klienti nemuseli implementovať metódy, ktoré nepoužívajú.

Cieľ: Rozdeľovať veľké rozhrania na menšie špecializované rozhrania.

Príklad:

class Printer:

    def print(self): pass

class Scanner:

    def scan(self): pass

5.D – Dependency Inversion Principle (DIP):

Princíp inverzie závislostí:

Vysokoúrovňové moduly by nemali byť závislé od nízkoúrovňových modulov. Obe by mali závisieť na abstrakciách.

Cieľ: Minimalizovať priame závislosti medzi komponentmi.

Príklad:

class Database:

    def get_data(self):

        pass

class App:

    def __init__(self, db: Database):

        self.db = db

Výhody SOLID:

1.Udržiavateľnosť: Kód je ľahšie čitateľný a opraviteľný.

2.Flexibilita: Jednoduchšie pridávanie nových funkcionalít.

3.Opätovná použiteľnosť: Kód je modulárny a viac využiteľný.

4.Testovateľnosť: Lepšie štruktúrovaný kód zjednodušuje jednotkové testy.

Príklad použitia v praxi:

Pri návrhu veľkých systémov alebo pri práci v tíme je aplikácia SOLID princípov neoceniteľná, pretože minimalizuje chyby spôsobené zmenami a uľahčuje rozšírenia.

SOLID je základný návod na písanie kvalitného objektovo orientovaného kódu, ktorý je robustný, flexibilný a ľahko udržiavateľný.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top