Java. Паттерн Strategy

Strategy - это поведенческий паттерн, для определения схожих
алгоритмов.
Здесь похожие алгоритмы print для StrategyA  и StrategyB. 
Эти два класса реализуют один интерфейс IPrint.
Класс ContextStrategy - содержит IPrint iPrint IPrint и
setiPrint - для уставноки нужной стратегии и метод print,
который содержит this.iPrint.print







public interface IPrint {
void print(String message);
}
public class StrategyA implements IPrint {
@Override
public void print(String message) {
System.out.println("StrategyA " + message);
}
}
public class StrategyB implements IPrint {
@Override
public void print(String message) {
System.out.println("StrategyB " + message);
}
}
public class ContextStrategy {
private IPrint iPrint;

public void setiPrint(IPrint iPrint) {
this.iPrint = iPrint;
}

public void print(String message) {
this.iPrint.print(message);
}


public void setiPrintAndPrint(IPrint iPrint, String message) {
this.iPrint = iPrint;
this.iPrint.print(message);
}

}

public class MainClass {

public static void main(String[] args) {
ContextStrategy cs = new ContextStrategy();
cs.setiPrint(new StrategyA());
cs.print("A");

cs.setiPrint(new StrategyB());
cs.print("B");


cs.setiPrintAndPrint(new StrategyA(), "A");

}
}

Вывод на консоль:
StrategyA A
StrategyB B
StrategyA A











Комментарии

Популярные сообщения из этого блога

Java. Лучшая практика работы с Enum

Java. Разбор класса Collections

Java. Удаление данных из коллекции