Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
design_patterns por Mind Map: design_patterns

1. Fluent interfejs

1.1. reprezentuje zbiór operacji z jakiejś dziedziny

1.2. pozwala tworzyć mikrojęzyki w składni języka w kontekście którego jest tworzony

1.3. pozwala na method changing (zwaracaną wartością musi być referencja na ten obiekt)

2. definicja

2.1. Wzorce projektowe to sprawdzone rozwiązanie które opisuje pewną abstrakcję

2.2. jest opisem rozwiązania, ale nie definuje jego implementacji

3. zastaw atrybutów

3.1. nazwa

3.2. klasyfikacja

3.3. cel

3.4. aliasy

3.5. motywacja

3.6. zastosowanie

3.7. struktura

3.8. dodatkowo

3.8.1. nazwy klas i ich odpowiedzialnosc

3.8.2. konsekwencje zastosowaniea

3.8.3. opis współdziałania klas

3.8.4. implementacja w danym języku

3.8.5. opis podobnych wzorców

4. rodzaje

4.1. kreacyjne

4.1.1. dotyczące sposobu tworzenia obiektów

4.2. strukturalne

4.2.1. dotyczące sposobu konstrukcji struktur

4.3. behavioralne

4.3.1. skupiające się na opisie algorytmów

4.4. architektoniczne

5. kreacyjne

5.1. singleton

5.1.1. getInstance

5.2. object pool

5.2.1. interface Pool

5.2.1.1. concretePool

5.2.1.1.1. getInstance()

5.2.1.1.2. getObject():reusableObject

5.2.1.1.3. returnObject(reusuableObject)

5.2.1.1.4. List<ReusubaleObject>

5.2.2. Reusableobject

5.3. builder

5.3.1. class Product

5.3.1.1. ,,, lots of atributies

5.3.2. interface Builder

5.3.2.1. class concreteBuilder

5.3.2.1.1. buildPart_1()

5.3.2.1.2. ...

5.3.2.1.3. buildPart_nth_element_of_product()

5.3.2.1.4. getProduct()

5.3.3. class Director

5.3.3.1. Director(Builder builder)

5.3.3.2. getProduct():Product

5.3.3.2.1. builder.buildPart_p

5.3.3.2.2. builder.buildPart_m

5.3.3.2.3. builder.buildPart_q

5.3.3.2.4. ...

5.3.3.2.5. return builder.getProduct()

5.3.4. client

5.4. factory

5.4.1. interface Product

5.4.1.1. class ConcreteProduct

5.4.2. Factory

5.4.2.1. makeProduct(): Product

5.5. factory method

5.5.1. Product

5.5.1.1. static makePorduct():Product

5.6. abstract factory

5.6.1. interface Factory

5.6.1.1. concreteFacotry

5.6.1.1.1. createProduc():Product

5.6.2. interfaceProcud

5.6.2.1. concreteProduct

5.7. prototype

5.7.1. interface Prototype

5.7.1.1. class concretePrototypeA

5.7.1.1.1. clone()

5.7.1.2. class concretePrototypeB

5.7.1.2.1. clone()

5.7.2. client

5.7.2.1. operation()

5.7.2.1.1. Prototype protorype = new concreteProtorype()

5.7.2.1.2. clonedObject1 = prototype.clone()

6. czynnościowe , operacyjne, behawioralne

6.1. strategy

6.1.1. interface Strategy

6.1.1.1. concreteStrategy1

6.1.1.1.1. algorithm()

6.1.1.2. concreteStrategy2

6.1.1.2.1. algorithm()

6.1.2. class Contex

6.1.2.1. setStrategy(Strategy strategy)

6.1.2.2. Strategy strategy

6.2. template method

6.2.1. abstrct class Game

6.2.1.1. run() (template method)

6.2.1.1.1. doSomething() forecha() doSomethinother()

6.2.1.2. class concreteGame

6.2.1.2.1. doSomething()

6.2.1.2.2. doSomethingOther

6.3. state

6.3.1. abstract class State

6.3.1.1. class concreteStateA

6.3.1.1.1. operation()

6.3.1.2. class concreteStateB

6.3.1.2.1. operation()

6.3.2. class Context

6.3.2.1. State state

6.3.2.2. operation()

6.3.2.2.1. state.operation() // for every mehtod from State

6.4. memento

6.4.1. class Memento

6.4.1.1. state

6.4.2. class Originator

6.4.2.1. saveToMemento():Memento

6.4.2.2. restoreFromMememnto(Memento memento)

6.4.2.3. state

6.4.3. class Caretaker

6.4.3.1. addMemento(Memento memento)

6.4.3.2. getMemento(index):Memento

6.4.3.3. List<Memento>

6.5. mediator

6.5.1. abstract Class Colleague

6.5.1.1. class concreteColleagueA

6.5.1.1.1. Mediator mediator = concreteMediator

6.5.1.1.2. send()

6.5.1.1.3. recev()

6.5.1.2. class concreteColleagueB

6.5.1.2.1. Mediator mediator = concreteMediator

6.5.1.2.2. send()

6.5.1.2.3. recev()

6.5.2. abstract class Mediator

6.5.2.1. class concreteMediator

6.5.2.1.1. List<Colleague> colleagues

6.5.2.1.2. addColleague(Colleague)

6.5.2.1.3. send()

6.5.2.1.4. recev()

6.6. visitor

6.6.1. inteface Visitor

6.6.1.1. concreteVisitor

6.6.1.1.1. visitConcretElementA(Element concreateElementA)

6.6.1.1.2. visitConcretElementB(Element concreteElementB)

6.6.2. abstract class Element

6.6.2.1. class concrete ElementA

6.6.2.1.1. accept(Visitor visitor)

6.6.2.2. class concrete ElementB

6.6.2.2.1. accept(Visitor visitor)

6.7. iterator

6.7.1. interface Interator

6.7.1.1. class concreteInerator

6.7.1.1.1. next():Object

6.7.1.1.2. fist():Object

6.7.1.1.3. current(): Object

6.7.1.1.4. isEmpty(): boolean

6.7.2. interface Agregatee

6.7.2.1. class concreteAgregatee

6.7.2.1.1. createIterator()

6.7.3. client

6.8. command

6.8.1. intefeace Command

6.8.1.1. class concreteCommand

6.8.1.1.1. execute()

6.8.1.1.2. Receiver receiver

6.8.2. class Invoker

6.8.2.1. addCommand(Command command)

6.8.2.2. List<Command> commands

6.8.2.3. for all commands.execute()

6.8.3. class Receiver

6.8.3.1. doSomething()

6.8.4. client

6.9. null object

6.10. observer

6.10.1. interface Subject

6.10.1.1. class concreteSubject

6.10.1.1.1. attachObserver(Oberver observer)

6.10.1.1.2. detachObserver(Observer observer)

6.10.1.1.3. notify()

6.10.1.1.4. List<Observer> observers

6.10.2. interface Observer

6.10.2.1. class concreteObserver

6.10.2.1.1. update(Oberver)

6.11. interpreter

6.11.1. abstract class AbstractExpression

6.11.1.1. class terminalExpression

6.11.1.1.1. interpreter(Context)

6.11.1.2. class nonterminalExpression

6.11.1.2.1. interpreter(Context)

6.11.2. client

6.11.3. Context

6.12. chain of responsibility

6.12.1. interface RequestHandler

6.12.1.1. class concreteRequestHandler

6.12.1.1.1. addNextHandler(RequestHandler)

6.12.1.1.2. List<RequestHandler> handlers

7. strukturalne

7.1. adapter

7.1.1. interface Target

7.1.1.1. class Adapter

7.1.1.1.1. requireMethod()

7.1.1.1.2. Adaptee adaptee

7.1.2. class Adaptee (incompatibile)

7.1.2.1. oldMethod()

7.1.3. client

7.1.3.1. Adapter adapter

7.1.3.2. adapter.requireMethod()

7.2. bridge

7.2.1. abstract class Abstraction

7.2.1.1. class concreteAbstraction

7.2.1.1.1. Implementator implementator

7.2.1.1.2. operation()

7.2.2. interface Implementator

7.2.2.1. class concreteImplementation

7.2.2.1.1. operation()

7.2.3. client

7.3. fasada

7.3.1. client

7.3.1.1. Fasada fasada.

7.3.1.2. fasada.doSomething()

7.3.1.2.1. easy function

7.3.2. class Facade

7.3.2.1. doSomething()

7.3.2.1.1. Inmodule_1 something = new Inmodule1()

7.3.2.1.2. something.doOtherThing(new InModule_3())

7.3.2.1.3. somehting ...

7.3.3. very compelx module

7.3.3.1. class inmodu_1

7.3.3.2. clss in_moudle_2

7.3.3.3. class in_moudle_3

7.4. kompozyt

7.4.1. inteface Component

7.4.1.1. class Composite

7.4.1.1.1. List<Component>lefafs

7.4.1.2. class Leaf

7.5. flyweight

7.5.1. class FlyweightFactory

7.5.1.1. static getFlyweight(key)

7.5.1.2. HasMap<Flyweigjt, key>

7.5.1.2.1. Flyweight_1

7.5.1.2.2. ...

7.5.1.2.3. Flyweight_n

7.5.2. interface Flyweight

7.5.2.1. class concreteFlyweight

7.5.3. client

7.6. decorator

7.6.1. interface Component

7.6.1.1. class concreteComponent

7.6.1.1.1. doOperation()

7.6.1.2. class decorator

7.6.1.2.1. ConcreteComponent conretecomponent

7.6.1.2.2. doOperation()

7.7. proxy

7.7.1. client

7.7.2. interface Subject

7.7.2.1. class RealSubject

7.7.2.1.1. doOperation()

7.7.2.2. class Proxy

7.7.2.2.1. RealSubject realsubject

7.7.2.2.2. doOperation()

7.8. private class data