Domanda                    | 
                
                    Risposta                    | 
            
        
        
      Co to są Wzorce Projektowe?    inizia ad imparare
 | 
 | 
      Typowe rozwiązania problemów często napotykanych przy projektowaniu oprogramowania. Stanowią coś na kształt gotowych planów które można dostosować, aby rozwiązać powtarzający się problem w kodzie.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      W roku 1995 opublikowano książkę Wzorce projektowe: Elementy oprogramowania obiektowego wielokrotnego użytku. Ludzie zaczęli skracać go do “książka bandy czworga”. “Podejście wzorcowe” stało się bardzo popularne   
 | 
 | 
 | 
      Wymień rodzaje wzorców projektowych?    inizia ad imparare
 | 
 | 
      Wzorce kreacyjne, wzorce strukturalne, wzorce behawioralne   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Metoda wytwórcza, fabryka abstrakcyjna, Budowniczy, Prototyp, Singleton   
 | 
 | 
 | 
      Wymień wzorce strukturalne    inizia ad imparare
 | 
 | 
      Adapter, Most, Kompozyt, Dekorator, Fasada, Pyłek, Pełnomocnik   
 | 
 | 
 | 
      Wymień wzorce behawioralne    inizia ad imparare
 | 
 | 
      Łańcuch zobowiązań, Polecenie, Iterator, Mediator, Pamiątka, Obserwator, Stan, Strategia, Metoda szablonowa, Odwiedzający   
 | 
 | 
 | 
      Co to są Wzorce Kreacyjne?    inizia ad imparare
 | 
 | 
      Wprowadzają elastyczniejsze mechanizmy tworzenia obiektów i pozwalają na ponowne wykorzystanie istniejącego kodu.   
 | 
 | 
 | 
      Co to są Wzorce Strukturalne?    inizia ad imparare
 | 
 | 
      Wyjaśniają jak składać obiekty i klasy w większe struktury, zachowując przy tym elastyczność i efektyw- ność struktur.   
 | 
 | 
 | 
      Co to są Wzorce Behawioralne?    inizia ad imparare
 | 
 | 
      Zajmują się efektywną komunikacją i podziałem obowiązków pomiędzy obiektami.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Metoda Wytwórcza. Udostępnia interfejs do tworzenia obiektów w ramach klasy bazowej, ale pozwala podklasom zmieniać typ tworzonych obiektów.   
 | 
 | 
 | 
      Wyjaśnij Abstract Factory    inizia ad imparare
 | 
 | 
      Fabryka Abstrakcyjna. Pozwala tworzyć rodziny spokrewnionych ze sobą obiektów bez określania ich konkretnych klas.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Budowniczy. Daje możliwość tworzenia złożonych obiektów etapami. Wzorzec ten pozwala produkować różne typy oraz reprezentacje obiektu używając tego samego kodu konstrukcyjnego.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Prototyp. Umożliwia kopiowanie już istniejących obiektów bez tworzenia zależności pomiędzy twoim kodem, a klasami obiektów.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pozwala zapewnić istnienie wyłącznie jednej instancji danej klasy. Ponadto daje globalny punkt dostępowy do tejże instancji.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Adapter. Pozwalaj na współdziałanie ze sobą obiektów o niekompatybilnych interfejsach.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Most. Pozwala na rozdzielenie dużej klasy lub zestawu spokrewnionych klas na dwie hierarchie - abstrakcję oraz implementację. Nad obiema można wówczas pracować niezależnie.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Kompozyt. Pozwala komponować obiekty w struktury drzewiaste, a następnie traktować te struktury jakby były osobnymi obiektami.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Dekorator. Pozwala dodawać nowe obowiązki obiektom poprzez umieszczanie tych obiektów w specjalnych obiektach opakowujących, które zawierają odpowiednie zachowania.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Fasada. Wyposaża bibliotekę, framework lub inny złożony zestaw klas w uproszczony interfejs.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pyłek. Pozwala zmieścić więcej obiektów w danej przestrzeni pamięci RAM poprzez współdzielenie części opisu ich stanów.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pełnomocnik. Pozwala stworzyć obiekt zastępczy w miejsce innego obiektu. Pełnomocnik nadzoruje dostęp do pierwotnego obiektu, pozwalając na wykonanie jakiejś czynności przed lub po przekazaniu do niego żądania.   
 | 
 | 
 | 
      Wyjaśnij Chain of Responsibility    inizia ad imparare
 | 
 | 
      Łancuch Zobowiązań. Przekazuje żądania wzdłuż łańcucha obiektów obsługujących. Otrzymawszy żądanie, obiekt obsługujący decyduje o przetworzeniu żądania lub przekazaniu go do kolejnego obiektu obsługującego w łańcuchu.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Polecenie. Zmienia żądanie w samodzielny obiekt zawierający informacje żądaniu. Taka transformacja pozwala na parametryzowanie metod przy użyciu różnych żądań. Umożliwia opóźnianie lub kolejkowanie wykonywania żądań oraz na cofanie operacji.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pozwala sekwencyjnie przechodzić od elementu do elementu jakiegoś zbioru bez konieczności eksponowania jego formy (lista, stos, drzewo, itp.).   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pozwala zredukować chaos zależności pomiędzy obiektami. Wzorzec ten ogranicza bezpośrednią komunikację pomiędzy obiektami i zmusza je do współpracy wyłącznie za pośrednictwem obiektu mediatora.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Pamiątka. Pozwala zapisywać i przywracać wcześniejszy stan obiektu bez ujawniania szczegółów jego implementacji.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Obserwator. Pozwala zdefiniować mechanizm subskrypcji w celu powiadamiania wielu obiektów o zdarzeniach dziejących się w obserwowanym obiekcie.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Stan. Pozwala obiektowi zmienić swoje zachowanie gdy zmieni się jego stan wewnętrzny. Wygląda to tak, jakby obiekt zmienił swoją klasę.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Strategia. Pozwala zdefiniować rodzinę algorytmów, umieścić je w osobnych klasach i uczynić obiekty tych klas wymienialnymi.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Metoda Szablonowa. Definiuje szkielet algorytmu w klasie bazowej i pozwala podklasom nadpisać pewne etapy tego algorytmu bez konieczności zmiany jego struktury.   
 | 
 | 
 | 
| 
     inizia ad imparare
 | 
 | 
      Odwiedzający. Pozwala oddzielić algorytmy od obiektów na których pracują.   
 | 
 | 
 |