一,策略模式主要对其算法的包装,将每一个算法封装到具有共同接口的独立的类当中,使他们可以相互替换
策略模式运用非常广泛,在这里以(加,减,乘,除)算法为例,
接口:
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));
}
}
以上是简单的算法封装,可以根据传入的对象不一样,而表现出不一样的行为,,在外加以封装之后,可以使该类算法运用非常灵活
使用: