【ThinkingInJava】10、完全解耦,策略设计模式

/**
* 书本:《Thinking In Java》
* 功能:完全解耦,策略设计模式
* 	  这里apply.process()方法可以接受任何类型的processor,并将其应用到一个Object对象上,然后打印结果
* 文件:Apply.java
* 时间:2015年4月2日16:50:55
* 作者:cutter_point
*/
package Lesson9Interfaces.classprocessor;

import static net.mindview.util.Print.*;

import java.util.Arrays;

class Processor
{
	public String name()
	{
		return this.getClass().getSimpleName();
	}
	
	Object process(Object input) { return 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();
	}
}

class Splitter extends Processor
{
	String process(Object input)
	{
		return Arrays.toString(((String)input).split(" "));
	}
}

public class Apply 
{
	public static void process(Processor p, Object s)
	{
		print("Using Processor" + p.name());
		print(p.process(s));
	}
	
	public static String s = "I like China, I`m Chinese, I can!";
	
	public static void main(String [] args)
	{
		Processor p = new Processor();
		System.out.println(p.name());
		
		process(new Upcase(), s);
		process(new Downcase(), s);
		process(new Splitter(), s);
	}
}


结果:

Processor
Using ProcessorUpcase  obj1
I LIKE CHINA, I`M CHINESE, I CAN!  obj1
Using ProcessorDowncase  obj1
i like china, i`m chinese, i can!  obj1
Using ProcessorSplitter  obj1
[I, like, China,, I`m, Chinese,, I, can!]  obj1





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值