TIJ_策略设计模式

import java.util.Arrays;
public class Test2 {
public static void get(Processor p,Object input){
System.out.println(p.name());
System.out.println(p.process(input));
}
public static String s="Happy bir";
public static void main(String[] args){
get(new Downcase(),s);
get(new Upcase(),s);
get(new Splitter(),s);
}
}
class Processor{
public String name(){
return getClass().getSimpleName();
}
Object process(Object input){
return input;
}
}
class Downcase extends Processor{
String process(Object input){
return ((String)input).toLowerCase();
}
}
class Upcase extends Processor{
String process(Object input){
return ((String)input).toUpperCase();
}
}
class Splitter extends Processor{
String process(Object input){
return Arrays.toString(((String)input).split(" "));
}

}

自己的理解://策略就是把定义一个get方法,参数为一个Processor的实例p,第二个参数是这个类中的一个方法需要传入的参数input,通过这两个参数就可以调用
//p.get(input)。就是利用参数可以直接完成某一个类中的方法调用,并且在使用的时候,根据第一个参数可以使用Processor的导出类,这样可以具有不同的行为。

书中描述:Test2的get()方法可以接受任何类型的Processor,并将其应用到一个Object对象上,然后打印结果。像这个例子,创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,被称为策略设计模式。这类方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分。策略就是传递进去的参数,它包含要执行的代码。这里,Processor对象就是一个策略,在main( )中可以看到有三种不同类型的策略应用到了String类型的s对象上。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值