package design.Strategy;
/**
* 接口
*/
public interface StrategyInterface {
int calculate(int a, int b);
}
package design.Strategy;
/**
* 加
*/
public class sum implements StrategyInterface {
@Override
public int calculate(int a, int b) {
return a+b;
}
}
package design.Strategy;
/**
* 减
*/
public class minus implements StrategyInterface {
@Override
public int calculate(int a, int b) {
return a - b;
}
}
package design.Strategy;
/**
* 乘
*/
public class multiply implements StrategyInterface {
@Override
public int calculate(int a, int b) {
return a*b;
}
}
package design.Strategy;
/**
* 除
*/
public class division implements StrategyInterface {
@Override
public int calculate(int a, int b) {
if (b==0){
return 0;
}
return a/b;
}
}
package design.Strategy;
public class StrategyContext {
private StrategyInterface strategyInterface;
public StrategyContext() {
strategyInterface = new sum();
}
public void setStrategyInterface(StrategyInterface strategyInterface) {
this.strategyInterface = strategyInterface;
}
public void calculate(int a, int b) {
System.out.println(strategyInterface.calculate(a, b));
}
}
package design.Strategy;
public class Main {
public static void main(String[] args) {
StrategyContext strategyContext=new StrategyContext();
strategyContext.setStrategyInterface(new minus());
strategyContext.calculate(111,1);
strategyContext.setStrategyInterface(new multiply());
strategyContext.calculate(111,3);
}
}
设计模式之美-2 |策略模式
猜你喜欢
转载自blog.csdn.net/qq_38173650/article/details/115184605
今日推荐
周排行