Czym są wzorce projektowe?
Wzorce projektowe to typowe rozwiązania problemów z projektowaniem oprogramowania, które wciąż napotykasz podczas tworzenia aplikacji w świecie rzeczywistym.
Wzorce projektowe to typowe rozwiązania problemów z projektowaniem oprogramowania, które wciąż napotykasz podczas tworzenia aplikacji w świecie rzeczywistym.
Wzorce Projektowe to sprawdzone w praktyce, uniwersalne rozwiązania często pojawiających się problemów podczas projektowania aplikacji. Wzorce projektowe tworzone są najczęściej w oparciu o programowanie obiektowe.
Moduły wysokopoziomowe nie powinny zależą od modułów niskopoziomowych, obie grupy modułów powinny zależeć od abstrakcji. Abstrakcje nie powinny zależeć od szczegółów rozwiązania, to szczegóły powinny zależeć od abstrakcji.
Teraz omówimy zasadę segregacji interfejsów jest to czwarta zasada SOLID, która opisuje, jak powinniśmy projektować i używać interfejsy w naszych aplikacjach. Zasada ta stanowi, że klienci (klasy) nie powinni być zmuszani do polegania na metodach, których nie używają. Kilka dedykowanych interfejsów jest lepsze niż jeden, który jest zbyt ogólny.
Przyjrzyjmy się teraz, jak możemy zastosować zasadę LSP w naszej aplikacji myjni samochodowej. Użytkownicy naszej aplikacji, zgłosili nam mały błąd który wprowadziliśmy, gdy modyfikowaliśmy nasz kod wprowadzając wzorzec fabryki DetailsPricingFactory do tworzenia różnych instancji typów mycia, teraz musimy to naprawić.
Teraz porozmawiamy o zasadzie podstawiania Liskov. Zasada podstawiania Liskov lub LSP, to trzecia z zasad SOLID która mówi, że:
Funkcje, które używają wskaźników lub referencji do klas bazowych,
muszą być w stanie używać również obiektów klas dziedziczących
po klasach bazowych, bez dokładnej znajomości tych obiektów.
Wyobraźmy sobie teraz hipotetycznie, że przychodzi nasz klient dla którego robimy aplikację i pojawia się nowy wymóg, który zmienia sposób działania naszej aplikacji w niektórych przypadkach. I to jest częsta, bardzo życiowa sytuacja która zdarza się nieustannie. I tak się składa, że firma postanowiła dodać nowy typ mycia Premium i potrzebujemy mechanizmu do obsługi tego nowego typu mycia.
Zasada otwarte/zamknięte lub OCP to jest druga z zasad SOLID, która mówi nam, że jednostki oprogramowania, takie jak moduły, klasy, funkcje i tak dalej, powinny być otwarte na rozszerzanie, ale zamknięte na modyfikacje.
Czyli powinna istnieć możliwość zmiany zachowania metody
bez konieczności edytowania jej kodu źródłowego.
Ile obowiązków znaleźliście w CarWash?
Przedstawie teraz wszystkie które mogliście zauważyć.
1) Wszędzie tam, gdzie to robimy, Console.WriteLines(„coś”);
– jest przykładem tego, jak chcemy logować wszystko to co zachodzi w naszej aplikacji.
Dobrze tak jak już powiedziałem wystarczy już tych rozważań teoretycznych tego nudzenia i przejdźmy do praktycznego zastosowanie a wszystko stanie się jasne i proste, a najlepszy jest praktyczny, życiowy przykład !!!
Oznacza to, że nasze klasy czy metody powinny posiadać tylko jedną odpowiedzialność. Nie powinien istnieć więcej niż jeden powód abyśmy chcieli zmodyfikować naszą klasę. Nie możemy tworzyć fabryki, która produkuje wszystko statki, rowery, samochody i jednocześnie szyje spodnie. Każda klasa powinna być odpowiedzialna za jedną rzecz.
Postaram się wam teraz przedstawić ogólne zasady, jakie powinny być stosowane aby pisać dobry kod. Zapewne wszyscy chcielibyśmy aby nasze aplikacje jak i ich architektura była jak najwyższej jakości.