您的位置:首页 > 编程语言 > Java开发

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

2015-04-17 15:50 453 查看
/**
* 书本:《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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: