package com.jaeson.javastudy.designpattern; /** * 策略模式属于对象的行为模式。 * 其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。 * 策略模式使得算法可以在不影响到客户端的情况下发生变化。 * */ public class StrategyPattern { private ICalculator strategy; public StrategyPattern(ICalculator strategy) { this.strategy = strategy; } public int cal(int i, int j) { return this.strategy.calculate(i, j); } public void setStrategy(ICalculator strategy) { this.strategy = strategy; } public static void main(String[] args) { StrategyPattern st = new StrategyPattern(new Plus()); System.out.println(st.cal(1, 10)); st.setStrategy(new Minus()); System.out.println(st.cal(1, 10)); st.setStrategy(new Multi()); System.out.println(st.cal(1, 10)); st.setStrategy(new Devide()); System.out.println(st.cal(1, 10)); } } class Plus implements ICalculator { @Override public int calculate(int i, int j) { return i + j; } } class Minus implements ICalculator { @Override public int calculate(int i, int j) { return i - j; } } class Multi implements ICalculator { @Override public int calculate(int i, int j) { return i * j; } } class Devide implements ICalculator { @Override public int calculate(int i, int j) { return i / j; } }
Strategy模式
猜你喜欢
转载自jaesonchen.iteye.com/blog/2286901
今日推荐
周排行