策略模式(Strategy)---算法
?
一,策略模式主要对其算法的包装,将每一个算法封装到具有共同接口的独立的类当中,使他们可以相互替换
?
策略模式运用非常广泛,在这里以(加,减,乘,除)算法为例,
?
接口:
?
package com.wqy.strategy;public interface Oper {public abstract double Oper(float f1,float f2);}?减法操作
?
public class Substract extends Oper {public double Oper(float f1,float f2) {return (f1-f2);}}?除法操作
?
package com.wqy.strategy;public class Division extends Oper {public double Oper(float f1, float f2) {return (f1/f2);}}?以下的加法与减法不一一列举...
?
?
封装类
?
package com.wqy.strategy;public class Wrapper {public Oper oper;public Wrapper() {}public Wrapper(Oper oper) {this.oper = oper;}public double oper(float f1, float f2) {return oper.Oper(f1, f2);}}?测试类.
?
?
package com.wqy.strategy;public class Client {public static void main(String[] args) {Wrapper wrapper1=new Wrapper(new Substract());System.out.println(wrapper1.oper(30,40));Wrapper wrapper2=new Wrapper(new Division());System.out.println(wrapper2.oper(30,40));}}?以上是简单的算法封装,可以根据传入的对象不一样,而表现出不一样的行为,,在外加以封装之后,可以使该类算法运用非常灵活
?
?
使用:

?
?
?