首页 > 其他 > 详细

【Java设计模式】策略模式

时间:2014-02-06 19:18:38      阅读:517      评论:0      收藏:0      [点我收藏+]

(转载请注明出处:http://blog.csdn.net/buptgshengod

1.背景知识

   策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。比如每个人都要“交个人所得税”,但是“在美国交个人所得税”和“在中国交个人所得税”就有不同的算税方法。策略模式将不同的算法封装起来,根据客户端的需求,调用不同的对象使用不同的算法,节省了大量的if-else之类的代码量。

2.实现

本例由三种算法组成,算法一是将数字乘以1,算法二是乘以2,算法三是乘以3。客户端调用第二种算法。
Calculate.java -三种算法的接口
public interface Calculate {
/*
 * 算法接口,返回具体的算法
 */
	public int calnumber(int number);
	
}

FirstCalculate.java-第一种算法,其余两种算法略
public class FirstCalculate implements Calculate {

	@Override
	public int calnumber(int number) {
		// TODO Auto-generated method stub
		System.out.println("算法一");
		return number;
	}

}

Context.java-设定算法的使用环境
public class Context {
   Calculate cal;
/*
 * 构造函数,设定使用的算法对象
 */
	public Context(Calculate cal){
		this.cal=cal;
	}
/*
 * 将数据传入对应算法
 */
	public int SetNumber(int number){
		return cal.calnumber(number);
	}
}

Client.java-入口函数
public class Client {
	public static void main(String[] args) {  
       
		Calculate cal=new SecondCalculate();
		Context con=new Context(cal);
		int result=con.SetNumber(300);
		System.out.println(result);
    }  	
}

结果
bubuko.com,布布扣

3.例子源代码

【Java设计模式】策略模式

原文:http://blog.csdn.net/buptgshengod/article/details/18950215

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!