Czego użyjesz? Flashcards
Przekształca interfejs klasy na inny oczekiwany przez klienta.
pol. adapter
ang. adapter
pol. nakładka
ang. wrapper
Dynamiczne dodawanie funkcjonalności do obiektów.
Jest to alternatywa do dziedziczenia które rozszerza zachowanie w trakcie kompilacji, w przeciwieństwie do dekoratora który rozszerza klasy w czasie wykonywania programu.
pol. dekorator
ang. decorator
pol. nakładka
ang. wrapper
Udostępnia obiekt zastępujący inny obiekt w celu kontrolowania dostępu.
pol. pełnomocnik
ang. proxy
pol. substytut
ang. surrogate
Oddzielenie tworzenia złożonego obiektu od jego reprezentacji, dzięki czemu proces konstrukcji może prowadzić do powstawania różnych reprezentacji.
pol. budowniczy
ang. builder
Chcemy wyodrębnić fragment odpowiedzialny za utworzenie konkretnego produktu do osobnej klasy
pol. prosta fabryka
ang. simple factory
Określa interfejs do tworzenia obiektów, przy czym umożliwia podklasom wyznaczenie klasy danego obiektu. Metoda ….. umożliwia klasom przekazanie procesu tworzenia egzemplarzy podklasom.
pol. metoda wytwórcza/fabryczna/fabrykująca
ang. factory method
pol. konstruktor wirtualny
ang. virtual constructor
Udostępnia interfejs do tworzenia rodzin powiązanych ze sobą lub zależnych od siebie obiektów bez
określania ich klas konkretnych.
pol. fabryka abstrakcyjna
ang. abstract factory
pol. zestaw
ang. kit
Określa na podstawie prototypowego egzemplarza rodzaje tworzonych obiektów i generuje nowe
obiekty przez kopiowanie tego prototypu.
pol. prototyp
ang. prototype
Gwarantuje, że klasa będzie miała tylko jeden egzemplarz i zapewnia globalny dostęp do niego.
pol. singleton
ang. singleton
Strukturalny wzorzec projektowy, którego celem jest organizacja obiektów w strukturę (hierarchiczną, drzewiastą grupę obiektów) i zdefiniowanie interfejsu wspólnego zarówno dla pojedynczych obiektów jak i grup obiektów.
W ten sposób klient ma możliwość korzystania ze złożonych struktur obiektów w taki sam sposób jak
z obiektów pierwotnych (pojedynczych). Ponadto w łatwy sposób można rozszerzać funkcjonalność
programu, dodając nowe struktury (komponenty).
pol. kompozyt
ang. composite
Oddziela klasę abstrakcji od jej implementacji, dzięki czemu można edytować te elementy niezależnie.
pol. most
ang. bridge
pol. uchwyt/ciało
ang. handle/body
Wykorzystuje współdzielenie do wydajnej obsługi dużej liczby małych obiektów.
pol. pyłek
ang. flyweight
- Udostępnienie jednolitego interfejsu dla zbioru interfejsów podsystemu.
- Określa interfejs wyższego poziomu ułatwiając korzystanie z podsystemów.
pol. fasada
ang. fasade
Osłania inny obiekt i zapewnia mu dodatkowe
zachowania
pol. adapter
ang. adapter
pol. nakładka
ang. wrapper
Klient dysponuje ujednoliconym dostępem do kolekcji
obiektów i pojedynczych obiektów
pol. kompozyt
ang. composite
Osłania grupę obiektów, upraszczając ich interfejs
pol. fasada
ang. fasade
- Kiedy więcej niż jeden obiekt może obsłużyć żądanie, a nie wiadomo z góry, który z nich to zrobi. Obiekt obsługujący żądanie powinien być ustalany automatycznie.
- Jeśli chcesz przesyłać żądanie do jednego z kilku obiektów bez bezpośredniego określania odbiorcy.
pol. łańcuch zobowiązań
ang. chain of responsibility
- Zestaw obiektów komunikuje się w dobrze zdefiniowany, ale skomplikowany sposób. Powstałe w wyniku tego zależności są nieustrukturyzowane i trudne do zrozumienia.
- Powtórne wykorzystanie obiektu jest trudne, ponieważ odwołuje się on do wielu innych obiektów i komunikuje się z nimi.
- Dostosowanie zachowania rozproszonego po kilku klasach nie powinno wymagać tworzenia wielu podklas.
pol. mediator
ang. mediator
- Jeśli zmiana w jednym obiekcie wymaga zmodyfikowania drugiego, a nie wiadomo, ile obiektów trzeba przekształcić.
- Jeżeli obiekt powinien móc powiadamiać inne bez określania ich rodzaju. Oznacza to, że obiekty nie powinny być ściśle powiązane.
pol. obserwator
ang. observer
pol. obiekty zależne
ang. dependents
pol. publikuj-subskrybuj
ang. publish-subscribe
- Do jednorazowego implementowania niezmiennych części algorytmu i umożliwienia implementowania zmieniających się zachowań w podklasach.
- Kiedy zachowanie wspólne dla podklas należy wyodrębnić i umieścić w jednej klasie, aby uniknąć powielania kodu.
- Do kontrolowania rozszerzania podklas. Można zdefiniować metodę szablonową wywołującą w odpowiednich miejscach operacje stanowiące „punkty zaczepienia”, co umożliwia rozszerzanie podklas tylko w tych punktach.
pol. metoda szablonowa
ang. template method
- Kiedy wiele powiązanych klas różni się tylko zachowaniem. ___ umożliwiają skonfigurowanie klasy za pomocą jednego z wielu zachowań.
- Jeśli potrzebne są różne wersje algorytmu. Można na przykład zdefiniować algorytmy związane z różnymi korzyściami i kosztami z zakresu pamięci oraz czasu przetwarzania.
- Jeżeli algorytm korzysta z danych, o których klienty nie powinny wiedzieć. Wzorzec ___ pozwala uniknąć ujawniania złożonych, specyficznych dla algorytmu struktur danych.
- Gdy klasa definiuje wiele zachowań, a te w operacjach pojawiają się w formie złożonych instrukcji warunkowych. Zamiast tworzyć wiele takich instrukcji, należy przenieść powiązane gałęzie do odrębnych klas ___
pol. strategia
ang. strategy
pol. polityka
ang. policy
Umożliwia obiektowi modyfikację zachowania w wyniku zmiany wewnętrznego stanu. Wygląda to tak, jakby obiekt zmienił klasę.
pol. stan
ang. state
pol. obiekty stanów
ang. objects of states
Zadaniem wzorca jest interpretacja poleceń innego języka. Użycie tego wzorca polega na zdefiniowaniu opisu gramatyki sformalizowanego języka interpretowanego i stworzenie dla niego interpretera, dzięki któremu będzie możliwe rozwiązanie danego problemu. Wzorzec ten implementuje swojego rodzaju parser, który konwertuje jedną reprezentację danych w inną
pol. interpreter
ang. interpreter
Czynnościowy wzorzec projektowy, którego zadaniem jest zapewnienie sekwencyjnego dostępu do elementów zbioru bez ujawnienia jego implementacji wewnętrznej.
Pod pojęciem zbioru kryją się bardzo różne struktury danych, takie jak listy, kolejki, stosy, zbiory, mapy, tabele, itp.
Wzorzec ten ma na celu udostępnienie zunifikowanego interfejsu dostępowego do elementów tych struktur danych.
pol. iterator
ang. iterator
pol. kursor
ang. cursor
Wzorzec projektowy, dzięki któremu mamy możliwość oddzielenia kodu implementującego algorytmy od obiektów, w których te algorytmy mają pracować.
Dzięki temu można w łatwy sposób dodać nowe rodzaje operacji na obiektach, nie dokonując większych zmian na tych obiektach, a jedynie dopisując nowe algorytmy w zewnętrznych klasach.
pol. odwiedzający
ang. visitor
Bez naruszania kapsułkowania rejestruje i zapisuje w zewnętrznej jednostce wewnętrzny stan obiektu, co umożliwia późniejsze przywrócenie obiektu według zapamiętanego stanu.
pol. pamiątka
ang. memento
pol. znacznik
ang. token
Obiekty takie rozszerzają wspólny interfejs, przy pomocy którego wykonują lub cofają dane polecenie. Zaletą stosowania tego wzorca jest zapewnienie większej elastyczności oraz możliwości rozszerzania aplikacji o nowe polecenia. Wadą natomiast jest konieczność tworzenia większej ilości obiektów.
pol. polecenie
ang. command
pol. akcja
ang. action
pol. transakcja
ang. transaction