策略模式
优:可以动态的改变对象的行为,缺点:客户端必须知道所有的策略类,并自行决定使用哪一个策略类,策略模式将造成产生很多策略类
实现方法:创建一个接口,让需要执行的算法或逻辑的类去实现接口中的方法。再创建一个类,将接口设置成类中的一个属性。
public class Use {
public static void main(String[] args) {
Environment environment;
environment = new Environment(new Test1());
environment.test();
environment = new Environment(new Test2());
environment.test();
environment = new Environment(new Test3());
environment.test();
}
}
public class Environment {
private InterfaceClass interfaceClass;
public Environment(InterfaceClass interfaceClass){
this.interfaceClass = interfaceClass;
}
public void setInterfaceClass(InterfaceClass interfaceClass) {
this.interfaceClass = interfaceClass;
}
public void test(){
this.interfaceClass.test();
}
}
public interface InterfaceClass {
public void test();
}
public class Test1 implements InterfaceClass{
@Override
public void test() {
System.out.println("测试q1");
}
}
public class Test2 implements InterfaceClass{
@Override
public void test() {
System.out.println("测试2");
}
}
public class Test3 implements InterfaceClass{
@Override
public void test() {
System.out.println("测试3");
}
}