精典策略模式
实现三:列举策略模式
enum EnumStrategy
{
/*加法策略的实现*/
ADD{
@Override
public int execute(int a, int b)
{
return a+b;
}
},
/*减法策略的实现*/
SUB{
@Override
public int execute(int a, int b)
{
return a-b;
}
},
/*乘法策略的实现*/
MUL{
@Override
public int execute(int a, int b)
{
return a*b;
}
},
/*除法策略的实现*/
DIV{
@Override
public int execute(int a, int b)
{
return a/b;
}
};
abstract public int execute(int a,int b);
}
来看看场景类:
public class EnumStrategyClient
{
public static void main(String[] args)
{
System.out.println(EnumStrategy.ADD.execute(2, 2));
}
}
这种变形的策略模式真是太那个了(省略各类赞叹)....太精妙了,不得不钦佩那些牛人,如许的实现,让可读性进步到最高点了,一眼就能看熟悉打听。连调用都如此简单(你说更看不懂了-_-!!那不是可读性的题目,是你不睬解列举,每一个列举值其实是这个列举类型的一个实例,它默认的前缀是public final static的,他其实和类差不久不多,只不过编译器为我们做了很多工作)。它扩大性没有实现二好,这是受限于enum类型,所以这种变形可以应用在策略不易改变的处所。
/************************************************/
本博客内容如果是原著都会在标题后加上(原著)字样,未加者多数为转载.
/************************************************/