本文主要讲java中的策略模式:一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式。概念可能有点不好理解,具体看下面代码: import java.util.Arrays;/** * 策略模式 一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式 * @au ...
本文主要讲java中的策略模式:一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式。概念可能有点不好理解,具体看下面代码:
import java.util.Arrays;/** * 策略模式 一个可以根据不同的传入参数而具有不同行为的方法,就叫策略模式 * @author dsj 2015-8-3 下午1:15:41 */public class Celv { static String s ="a策略 B模式"; public static void main(String[] args) { myProcess(new Upcase(), s); myProcess(new Downcase(), s); myProcess(new Splitter(), s); } public static void myProcess(Process process,Object s){ System.out.print(process.name()); System.out.println(":"+process.process(s)); }}/** 基类提供了两个公共发货:获取类名称方法,处理方法 **/class Process { public String name() { return getClass().getSimpleName(); } Object process(Object input) { return input; }}/** Process的子类具有转换字母为大写的功能**/class Upcase extends Process{ /** * Override:重写,他们的关系是父子关系,必须是方法名,参数的类型、个数、顺序,以及返回值都必须和父类相同才行。 * OverLoad:重载,他们的关系同类的不同方法,方法名相同其余都可以不同 */ @Override String process(Object input) { return ((String)input).toUpperCase(); }}/** Process的子类,具有转换字母为小写的功能 **/class Downcase extends Process{ @Override String process(Object input) { return ((String)input).toLowerCase(); }}/** Process子类,具有截取字符串的功能 **/class Splitter extends Process{ @Override Object process(Object input) { return Arrays.toString(((String)input).split(" ")); }}
原标题:java中的策略设计模式
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。