creational design patterns

Get Started. It's Free
or sign up with your email address
creational design patterns by Mind Map: creational design patterns

1. Określa interfejs do tworzenia obiektów, przy czym umożliwia podklasom wyznaczenie klasy danego obiektu. Metoda wytwórcza umożliwia klasom przekazanie procesu tworzenia egzemplarzy podklasom.

1.1. może zmieniać

1.1.1. podklasa tworzonego obiektu

1.2. do jakich projektów

1.2.1. projekty startują czesto od tego wzorca, potem ewolują do fabryki abstrakcyjnej, budowniczergo lub prototypu

2. budowniczy

2.1. Oddziela tworzenie złożonego obiektu od jego reprezentacji, dzięki czemu ten sam proces konstrukcji może prowadzić do powstawania różnych reprezentacji.

2.1.1. wzorze który pozwala tworzyć złożone struktury obiektowe

2.1.1.1. stosuje się go gdy mamy dużo konstruktorów z dużą ilością parametrów

2.1.2. pozwala oddzielić sposób reprezentacji tych struktur od sposoby ich konstrukcji

2.1.3. w konsekwencji pozwala na stosowanie tych samych mechanizmów do tworzenia różnych struktór

2.1.4. zalety

2.1.4.1. zmiany w implementacji Product nie wpływają na proces konstrukcji całej struktury

2.1.4.2. reprezentacja i konstrukcja są od siebie niezależne i odseparowane

2.1.4.3. mamy kontrolę na procesem tworzenia Procuct za pomocą klasy Director

2.1.4.4. łatwe i ustandaryzowane testy elementów struktury (Produktu)

2.1.5. elementy

2.1.5.1. Product

2.1.5.1.1. element składowy struktury

2.1.5.1.2. może się łączyć z innymi Product

2.1.5.1.3. ma bardzo dużo atrybutów i dlatego proces jego tworzenia jest skomplikowany

2.1.5.2. Builder

2.1.5.2.1. interfejs do tworzenia Product

2.1.5.3. ConcreteBuilder

2.1.5.3.1. tworzy wyspecjalizowany obiekt Product

2.1.5.4. Director

2.1.5.4.1. zarządzanie obiektami typu Builder i zlecanie im prac

2.2. implementacja

2.2.1. java

2.2.2. php

3. prototyp (prototype)

3.1. Określa na podstawie prototypowego egzemplarza rodzaje tworzonych obiektów i generuje nowe obiekty przez kopiowanie tego prototypu.

3.1.1. tworzy obiekt na podstawie określonej instancji, a nie przez wywołanie konstruktora

3.1.2. tworzy obiektu poprzez klonowanie obiektu typy Prototype

3.1.3. można podmieniać klasę klonowanego obiektu

3.1.3.1. tylko w sumie po co

3.1.4. do projektów

3.1.4.1. często używających dekoratora lub kompozytu

3.2. implementacja

3.2.1. php

3.2.2. php

4. metoda wytwórcza (factory method)

4.1. implementacje

4.1.1. C++

5. fabryka abstrakcyjna (abstract factory)

5.1. Udostępnia interfejs do tworzenia rodzin powiązanych ze sobą lub zależnych od siebie obiektów bez określania ich klas konkretnych

5.2. może zmieniać

5.2.1. rodzina obiektów-produktów

5.3. implementacja

5.3.1. C++

5.3.2. php

6. object pool

6.1. Stosuję się go gdy mamy obiekt, którego utworzenie lub zniszczenie jest bardzo kosztowne lub gdy czas życia obiektu jest bardzo krótki. Obiekty takie przechowuje się w basenie.

6.1.1. rozszerzenie idea wzorca Singleton, która pozwala na wielokrotne wykorzystanie instancji obiektów

6.1.2. pozwala na ograniczenie kosztów związanych z wielokrotnym tworzeniem i niszczeniem obiektw

6.1.3. podstawowym elementem jest klasa ConcreatePool, która zajmuje się tworzeniem obiektów ResuableObject i zarządzaniem cyklem życia tych obiektów

6.2. implementacja

6.2.1. c++

7. factory

7.1. prosty interfejs do tworzenia obiektów

7.2. odpowiedzialność za tworzenie obiektów do podklas

7.3. zamiast konstruktora

8. singleton

8.1. implementacja

8.1.1. c++

8.1.2. java

8.2. Gwarantuje, że klasa będzie miała tylko jeden egzemplarz, i zapewnia globalny dostęp do niego

8.2.1. pozwala stworzyć alternatywę do zmiennej globalnej w sposób obiektowey

8.2.2. składa się z jednej klasy odpowiedzialnej za zarządzanie obiektem tworzenym na jej postawie

8.2.3. zapewnia że w programie pojawi się tylko 1 obiekt danej klasy

8.2.4. zwykle posiada statyczną metodę getInstance() zwracającą wskaźnik lub referencję do obiektu

8.2.5. Klasa Singletom posiada prywatny konstruktor, przez co uniemożliwia tworzenie jej obiektów z zewnątrze