策略模式 定义一组算法, 将每个算法都封装起来, 并且使它们之间可以互换。 策略模式和代理模式的区别: 代理模式是相同的类进行代理. 策略模式注重点不一样.
1.来个策略接口
public interface IStrategy {
void operate();
}
2.来个实现的策略1
public class IStrategy_one implements IStrategy {
private static final String TAG = "IStrategy_one";
@Override
public void operate() {
Log.e(TAG, "operate: 策略1" );
}
}
3.来个实现的策略2
public class IStrategy_two implements IStrategy {
private static final String TAG = "IStrategy_two";
@Override
public void operate() {
Log.e(TAG, "operate: 策略2" );
}
}
4.把策略放到实际使用者手中
public class Context {
//构造函数, 你要使用哪个策略
private IStrategy straegy;
public Context(IStrategy strategy){
this.straegy = strategy;
}
//使用策略了
public void operate(){
this.straegy.operate();
}
}
5.来个测试类, 想要什么策略,往里面使用者手里扔就行了
public class Test {
public void test() {
Context context = new Context(new IStrategy_one());
context.operate(); //使用策略1
}
}