美文网首页
方法作为传入参数

方法作为传入参数

作者: yehongyu_2018 | 来源:发表于2019-01-15 18:42 被阅读0次

    定义方法的抽象类

    public abstract class Operation {
        void execute(long result, String data) {};
        void execute(long result, List<String> datas) {
            for (String data: datas) {
                execute(result, data);
            }
        }
    }
    

    定义不同的Operation实例对象,有不同的execute函数实现

    public class Service {
        
        private static final Operation ADD_OPERATION = new Operation() {
            @Override
            public void execute(long result, String data) {
                    // TODO
                }
        };
    
        private static final Operation SUB_OPERATION = new Operation() {
            @Override
            public void execute(long result, String data) {
                // TODO
            }
        };
    
        private static final Operation ALL_OPERATION = new Operation() {
            @Override
            public void execute(long result, String data) {
                    // TODO
              }
          };
    

    定义使用Operation类对象的地方

    public boolean order(String key, String data, Operation operation) throws Exception {
                long result = rpush(key, data);
                operation.execute(result, data);
                return result != 0;
        }
    public boolean orderAll(String key, List<String> datas, Operation operation) throws Exception {
                long result = rpush(key, datas);
                operation.execute(result, datas);
                return result != 0;
        }
    

    传入对象,这个对象有重写接口函数,调用接口函数时可以执行不同的方法

    order(key1, data1, ADD_OPERATION);
    order(key2, data2, SUB_OPERATION);
    orderAll(key3, dataList, ALL_OPERATION);
    

    相关文章

      网友评论

          本文标题:方法作为传入参数

          本文链接:https://www.haomeiwen.com/subject/dzoydqtx.html