public interface Strategy
{
public int method(int x,int y);
}
//抽象策略角色,由抽象类或者接口实现
public class AddStrategy implements Strategy
{
public int method(int x,int y)
{
return x+y;
}
}
//加法的实现类
public class SubStrategy implements Strategy
{
public int method(int x,int y)
{
return x-y;
}
}
//减法的实现类
public class MulityStrategy implements Strategy
{
public int method (int x,int y)
{
return x*y;
}
}
//乘法的实现类
public class ChuStrategy implements Strategy
{
public int method(int x,int y)
{
return x/y;
}
}
//除法的实现类
public class MediaClass
{
private Strategy strategy;
public MediaClass(Strategy strategy)
{
this.strategy=strategy;
}
public int calculate(int x,int y)
{
return strategy.method(x, y);
}
}
//环境角色,具有策略类的引用,供给客户调用!!!
public class CalcuTest
{
public static void main(String args[])
{
MediaClass add=new MediaClass(new AddStrategy());
int addvalue=add.calculate(5,6);
System.out.println(addvalue);
MediaClass sub=new MediaClass(new SubStrategy());
int subvalue=sub.calculate(5,6);
System.out.println(subvalue);
MediaClass mul=new MediaClass(new MulityStrategy());
int mulvalue=mul.calculate(5,6);
System.out.println(mulvalue);
MediaClass chu=new MediaClass(new ChuStrategy());
int chuvalue=chu.calculate(5,6);
System.out.println(chuvalue);
}
}
//客户端调用
使用策略模式实现加减乘除运算
最新推荐文章于 2021-12-23 19:15:00 发布
