码迷,mamicode.com
首页 > 其他好文 > 详细

策略模式

时间:2017-09-19 18:01:36      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:策略模式   string   exe   bsp   第一个   imp   err   pre   nts   

 

首先看代码,了解实现思路

一、接口、实现类(一组公共的行为)

1、接口

定义一个方法,在实现类中实现它,用于执行“加、减”操作

/*
 * 策略接口
 */
public interface Strategy {

	public int doOperation(int num1 , int num2);
	
}

 

2、第一个实现类:执行“加”操作

/*
 * 策略接口实现类:加
 */
public class OperationAdd implements Strategy {

	@Override
	public int doOperation(int num1, int num2) {
		return num1 + num2;
	}

}

 

3、第二个实现类:执行“减”操作

/*
 * 策略接口实现类:减
 */
public class OperationSubstract implements Strategy{

	@Override
	public int doOperation(int num1, int num2) {
		return num1 - num2;
	}

}

 

二、Context类 ,定义 当它改变策略 Strategy 时的行为变化。

public class Context {

	private Strategy strategy ;
	
	//new "加"对象,Strategy为"加"实现类; new "减"对象,Strategy为"减"实现类;
	public Context(Strategy strategy){	
		this.strategy = strategy;
	}
	
	public int executeStrategy(int num1, int num2){
	      return strategy.doOperation(num1, num2);
	}
}

 

三、Main类

 

public class StrategyPatternDemo {
	
	public static void main(String[] args) {
		
		//new "加"对象
		Context context = new Context(new OperationAdd());
		System.out.println("10 + 5 = " + context.executeStrategy(10, 5));
		
		//new "减"对象
		context = new Context(new OperationSubstract());        
	    System.out.println("10 - 5 = " + context.executeStrategy(10, 5));

	}
	
}

 

策略模式

标签:策略模式   string   exe   bsp   第一个   imp   err   pre   nts   

原文地址:http://www.cnblogs.com/Donnnnnn/p/7552720.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!