Klasy się mnożą. Każda ma swój interfejs, swoją inicjalizację, swoje wymagania. Fasada stawia przed nimi prostą, jednolitą ścianę — jeden punkt wejścia, który w środku robi wszystko co trzeba. Jak recepcjonistka, przez którą przechodzi każde pytanie.
Discover
Żądanie HTTP wchodzi do ASP.NET i po kolei przechodzi przez logowanie, autoryzację, kompresję — każdy middleware robi swoje i przekazuje dalej. To Łańcuch odpowiedzialności wbudowany w fundament frameworka.
Discover
Całe życie dziedziczysz, żeby rozszerzyć zachowanie. Most mówi, nie dziedzicz — trzymaj referencję. Dwie hierarchie, jedna referencja między nimi. Każda strona rośnie niezależnie — i żadna nie pyta drugiej o zgodę.
Discover
Klasa, która zadaje pytania o dane, nie powinna wiedzieć, jak te dane są przechowywane. Moduł wysokiego poziomu powinien zależeć od abstrakcji, nie od szczegółów implementacji. I nie, tu nie chodzi o wstrzykiwanie zależności.
Discover
Zewnętrzna biblioteka robi dokładnie to, czego potrzebujesz — ale jej interfejs nie pasuje do reszty systemu. Nie możesz jej zmienić. Adapter rozwiązuje ten problem, opakowując obcą klasę w znajomy interfejs.
Discover
Gruby interfejs wymusza implementację metod, których nikt nie potrzebuje — stara drukarka musi wiedzieć, czym jest faks. Zasada mówi: lepiej kilka małych interfejsów niż jeden, który wie za dużo. Proste, prawda?
Discover
Konstruktor w C# ma ograniczenie — jego nazwa zawsze odpowiada nazwie klasy, a dwa konstruktory muszą mieć różne sygnatury. Co zrobić, gdy chcemy tworzyć obiekt z różnych reprezentacji, ale obie przyjmują ten sam typ? Z pomocą przychodzi wzorzec fabryki.
Discover
Kwadrat jest prostokątem — to wie każdy, prawda? Ale czy klasa Square dziedzicząca po Rectangle może zepsuć kod, który działał? Zasada podstawiania Liskov tłumaczy, dlaczego dziedziczenie to nie tylko relacja "jest czymś".
Discover
Klasa powinna być otwarta na rozszerzenia, ale zamknięta na modyfikacje. Wzorzec Specyfikacji pokazuje jak to osiągnąć — obsługa nowych wymagań bez dotykania istniejącego kodu.
Discover
Zdarzenia w C# - od podstaw po ciemną stronę. Poznaj EventHandler, ale też dowiedz się, dlaczego społeczność .NET coraz częściej sięga po Rx.NET, Channels czy MediatR zamiast klasycznych eventów.