Návrhový vzor Strategy zapouzdřuje nějaký druh algoritmů nebo objektů, které se mají měnit, tak, aby byly pro klienta zaměnitelné.
V ukázce je bytost která má možnost promluvit, bude mluvit rozdílně podle toho jestli je Člověk nebo Pes.
public class Main {
public static void main(String[] args) {
Bytost b = new Bytost(new Clovek());
b.promluv();
Bytost p = new Bytost(new Pes());
p.promluv();
}
}
interface Strategy{
void promluv();
}
class Clovek implements Strategy{
public void promluv() {
System.out.println("člověk promluvil");
}
}
class Pes implements Strategy{
public void promluv(){
System.out.println("pes zaštěkal");
}
}
class Bytost{
private Strategy strategy;
Bytost(Strategy st){
this.strategy = st;
}
public void promluv() {
strategy.promluv();
}
}