您的位置:首页 > 其它

策略模式结合简单工厂模式

2008-09-19 22:42 429 查看
package Stragery;

public abstract class Operation {

public abstract int oper(int a);

}

各自的算法实现:

   

package Stragery;

public class OperationImpl extends Operation {

public int oper(int a)

{

System.out.println("使用算法1");

return a;

}

}

class OperationImplB extends Operation {

public int oper(int a)

{

System.out.println("使用算法2");

return a+2;

}

}

class OperationImplC extends Operation {

public int oper(int a)

{

System.out.println("使用算法3");

return a+3;

}

}

 策略类:

public class StrageryContext {

Operation oper=null;

public StrageryContext(int no)

{

switch (no)

{

case 1:

OperationImpl os=new OperationImpl();

oper=os;

break;

case 2:

OperationImplB os1=new OperationImplB();

oper=os1;

break;

case 3:

OperationImplC os2=new OperationImplC();

oper=os2;

break;

}

}

public int getResult(int a)

{

return oper.oper(a);

}

}

Client使用类:

  public class Client {

public static void main(String args[]){

StrageryContext context;

int a;

System.out.println("演示调用算法1");

context=new StrageryContext(new Integer(1));

a=12;

context.getResult(a);

System.out.println("演示调用算法2");

context=new StrageryContext(new Integer(2));

context.getResult(a);

System.out.println("演示调用算法3");

context=new StrageryContext(new Integer(3));

a=12;

context.getResult(a);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: