精典策略模式

实现三:列举策略模式
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类型,所以这种变形可以应用在策略不易改变的处所。

posted on 2012-10-11 15:24  冬日阳光  阅读(242)  评论(0编辑  收藏  举报

导航