Documentos de Académico
Documentos de Profesional
Documentos de Cultura
07 Strategy PDF
07 Strategy PDF
Strategy
Propsito
z
Strategy
Motivacin
z
Solucin:
z
Strategy
Motivacin
compositor
Composition
traverse()
repair()
Compositor
compose()
compositor.compose()
compose()
compose()
Strategy
Aplicabilidad
z
Strategy
Estructura
strategy
Context
contextInterface()
Strategy
algorithmInterface()
algorithmInterface()
algorithmInterface()
Strategy
Participantes
z
Context (Composition):
z
z
z
Strategy
Consecuencias
z
_compositor.compose();
Strategy
Consecuencias
z
Strategy
Consecuencias
z
s1:Concrete
StrategyA
state = 0
c2:Context
s2:Concrete
StrategyA
c1:Context
s1:Concrete
StrategyA
c2:Context
state = 20
// ejecutar doStep1 modifica el
// atributo state de la estrategia
_strategy.doStep1(...);
_strategy.doStep2(...);
Strategy
Cdigo de ejemplo
public interface Strategy {
public void execute();
}
public class ConcreteStrategyA implements Strategy {
public void execute() { ... }
}
public class ConcreteStrategyB implements Strategy {
public void execute() { ... }
}
public class Context {
private Strategy _strategy;
public Context (Strategy s) { _strategy = s; }
public Context () { _strategy = new ConcreteStrategyA(); }
public void execute() { _strategy.execute(); }
}
public class Client {
public static void main (String args[]) {
Context context = new Context(new ConcreteStrategyA());
context.execute();
}
}
Strategy
Implementacin
z
Strategy
Ejercicio
z
Strategy
Solucin
lManager
Container
add (Element)
LayoutManager
rework(...)
...
lManager.rework(...)
CircleLayout
rework(...)
FlowLayout
rework(...)
BorderLayout
rework(...)