设计模式之美-2 |策略模式


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);
    }
}

猜你喜欢

转载自blog.csdn.net/qq_38173650/article/details/115184605