欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

策略模式的一个简单例子

程序员文章站 2022-05-23 21:05:36
...

 

策略模式:创建一个能够根据所传递的参数对象的不同而具有不同行为的方法,称为策略模式;这类方法包含所要执行的算法中固定不变的部分,而“策略”包含变化的部分。策略就是传递进去的参数对象,它包含要执行的代码。

 

 

/*
 *  a simple example about Strategy model
 *  quote from thinking in java 5th page175
 */

package com.thinking.useinterface;

import java.util.Arrays;

class Processor {
	public String name() {
		return getClass().getSimpleName();
	}
	
	Object process(Object input) {
		return input;
	}
}

class Upcase extends Processor {
	String process(Object input) {	//convariant return
		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)
	{
		System.out.println(" Using Processor " + p.name());
		System.out.println(p.process(s));
	}
	
	public static String s = "Disagreement with beliefs is by definition incorrect";
	
	public static void main(String[] args) {
		process(new Upcase(), s);
		process(new DownCase(), s);
		process(new Splitter(), s);
	}

}