Strategy - juedaiyuer/researchNote GitHub Wiki

#策略模式#

  • 算法族模式,在我们的应用系统中对于同一个行为(算法)表现出不同的代表方式,让算法(行为)的改变独立于外部程序的调用,对于外部程序员而言,他不关心具体的行为,只关心达到什么样的行为效果.通过动态的确定调用行为

//定义一个接口类

public interface Cookfish
{
	public void cookfish();
}

//实现了这个接口,方法1

public class ChinaCook implements Cookfish
{
	public void cookfish()
	{
		System.out.println("china style of fish");
	}
}

//实现了这个接口,方法2

public class JapanCook implements Cookfish
{
	public void cookfish()
	{
		System.out.println("japan style of fish");
	}

}

public class Strategy
{
	private Cookfish cookfish;
	public Strategy(Cookfish cookfish)
	{
		this.cookfish = cookfish;
	}

	public void action()
	{
		this.cookfish.cookfish();
	}
}

public class demo
{
	public static void main(String[] args)
	{
		ChinaCook cc = new ChinaCook(); //创建一个实际对象
		Strategy my = new Strategy(cc); //由strategy管理实际对象的一切
		my.action();
	}	
}