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