Czym jest SOLID ?

Jest to skrót od zbioru pięciu podstawowych założeń programowania obiektowego, które warto znać i stosować:

  1. Single responsibility principle:

    SRP

    "A class should have one and only one reason to change,
    meaning that a class should have only one job."
  2. Open-closed principle:

    OCP

     "Objects or entities should be open for extension,
     but closed for modification."
  3. Liskov subsitution principle:

    LSP

     "Subtypes must be substitutable for their base types."

    lub

     "Functions that use pointers or references to base
     classes must be able to use objects of derived classes
     without knowing it."
  4. Interface segregation principle:

    ISP

     "A client should never be forced to implement an interface
     that it doesn't use or clients shouldn't be forced to depend
     on methods they do not use."
  5. Dependency inversion principle:
    DIP
    "Entities must depend on abstractions not on concretions.
    It states that the high level module must not depend on the
    low level module, but they should depend on abstractions."
    Podsumowując:
    1. Każda klasa powinna być odpowiedzialna tylko i wyłącznie za jedną, konkretną rzecz.
    2. Klasa powinna być otwarta na rozbudowę, zamknięta na modyfikację.
    3. Klasa dziedzicząca powinna tylko rozszerzać możliwości klasy bazowej i nie zmieniać tego, co robiła wcześniej.
    4. Jeżeli klasa implementuje interfejs, który posiada metodę która nie będzie używana w tej klasie, oznacza to, że warto podzielić interfejs w taki sposób, żeby klasa miała tylko te metody, których będzie używała.
    5. Kod z warstw z wyższego poziomu nie powinien zależeć od kodu z niższych warstw. Obie warstwy za to powinny być zależne od abstrakcji.

 

 

Facebook
LinkedIn