package yuwei.com;
/* * 当某个方法要完成某个行为,但这个行为的具体实现无法确定 * 必须等到执行该方法时才能确定。 * * 对于这样的要求可以把"处理行为" 作为参数传入该方法 * 这个处理行为用编程来实现就是一段代码 * 那如何把这段代码传入该方法呢 * * 可以考虑Comand接口来定义一个方法 * 用这个方法来封装处理行为 * */
/** * 该方法用于封装处理行为,还没有具体的方法体 * */
interface Command {
    //处理行为
    void process(int[] target);
}
/** * 这个定义的是处理数组的处理类,里面有一个process方法 * 但这个方法无法确定数据的处理行为,所以定义该方法时使用 * 了一个Command参数,这个Command参数负责对数组的处理行为 * * */
class ProcessArray{
    public void process(int[] target,Command cmd) {
        cmd.process(target);
    }
}
class ShowCommand implements Command{

    @Override
    public void process(int[] target) {
        // TODO Auto-generated method stub
        for(int i:target) {
            System.out.println(i);
        }
    }
}
class sumCommand implements Command {

    int sum = 0;
    @Override
    public void process(int[] target) {
        // TODO Auto-generated method stub
        for(int i:target) {
            sum += i;
        }
        System.out.println("total = " + sum);
    }

}
public class ComandDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ProcessArray p = new ProcessArray();
        int[] target= new int[] {2,3,2,4,5,2,5,5,2,54};
        p.process(target, new ShowCommand());
        ///////////////
        p.process(target, new sumCommand());
    }

}
/* 2 3 2 4 5 2 5 5 2 54 total = 84 */

更多相关文章

  1. 如何使用swig定义和传递ByteBuffer?
  2. java 和 JavaScript都可以在创建一个对象时,就可以通过这个对象调
  3. 有什么方法可以避免HibernateOptimisticLockingFailureException
  4. native方法的使用
  5. Java Quartz的使用方法,实现程序计时
  6. 将行计数器方法与字数统计方法相结合
  7. 9.JAVA-抽象类定义
  8. java基础:集合框架之Map(共性方法)
  9. JAVA中的反射只获取属性的get方法

随机推荐

  1. Android的加速感应器开发一个控制铁球滚
  2. pytest-skip详解
  3. 2011.10.17——— android 多点触控
  4. Android(安卓)首选网络模式默认值的修改
  5. android 中如何限制 EditText 最大输入字
  6. android调用系统打电话功能
  7. Android之Fastboot、Recovery基础知识
  8. Android Studio第二十四期 - Gson封装Uti
  9. Android工程 单元测试
  10. Android(安卓)Studio 快捷键(转)