策略模式的使用情景
最近在做一个比赛,由于算法肯定有多种,但是还没有确定具体有哪些策略,所以不知道还要写什么东西,所以采用了策略+简单工厂的设计模式。策略模式可以处理在不同时间应用不同的业务规则的这种变化性。
类图
实现
interface Algorithm{
int getAction(int index);
}
class AlgorithmAImpl implements Algorithm{
@Override
public int getAction(int index) {
return index+1;
}
}
class AlgorithmBImpl implements Algorithm{
@Override
public int getAction(int index) {
return index+2;
}
}
class AlgorithmManager{
Algorithm mAlgorithm;
int type;
int getRes(int type){
this.type = type;
switch (type){
case 0:
mAlgorithm = new AlgorithmAImpl();
break;
case 1:
mAlgorithm = new AlgorithmBImpl();
break;
default:
break;
}
return getAction(type);
}
private int getAction(int index){
return mAlgorithm.getAction(index);
}
}