java设计模式(五)--策略模式

1,什么是策略模式?

创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。

2,策略模式主要用途是什么?

能够动态改变对象的行为,根据所传参数不同,有不同的行为表现

3,设计原理

将变化部分设计成一个对象里面的方法,在继承的子类中覆盖该方法,利用java的多态性,指向不同子类对象的父类引用作为参数传递进去的时候(这就是策略),就会调用到不同的子类中重写的方法,从而实现同一套代码,不同的行为表现

废话不多说,直接看例子和代码:

class Processor
{
	public String name()
	{
		return getClass().getSimpleName();
	}
	
	String process(Object input)
	{
		return (String)input;
	}
}
class Upcase extends Processor
{
	String process(Object input)
	{
		return ((String)input).toUpperCase();
	}
}
class DownCase extends Processor
{
	String process(Object input)
	{
		return ((String)input).toLowerCase();
	}
}
public class Strategy 
{
	public static void process(Processor p,Object s)
	{
		System.out.println("Using processor " + p.name());
		System.out.println(p.process(s));
	}
	public static String s = "Test the Strategy design mode.";
	
	public static void main(String[] args) 
	{
		process(new Upcase(), s);
		process(new DownCase(), s);
	}
}

上面代码段中,Processor对象就是一个策略,它包含要执行的代码段,作为参数传进去了,在main()中可以看到有两种不同类型的策略应用到了String类型的对象s上

OK,策略模式介绍完了,说说它的应用场景吧,策略模式使得算法可以在不影响 到客户端的情况下发生变化。通常,策略模式适用于当一个应用程序需要实现一种特定的服务或者功能,而且该程序有多种实现方式时使用,跟工厂模式的差别,工厂模式注重的是对象的构造,可以根据所传参数的不同,构造出不同的对象的实例,是创建型模式;而策略模式是根据所穿参数不同,具有不同的行为表现,是行为型模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值