码迷,mamicode.com
首页 > 编程语言 > 详细

java中的策略设计模式

时间:2015-08-03 16:34:49      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

本文主要讲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(" "));
    }
}

运行结果:

Upcase:A策略 B模式
Downcase:a策略 b模式
Splitter:[a策略, B模式]

 

java中的策略设计模式

标签:

原文地址:http://www.cnblogs.com/androiddream/p/4699190.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!