• Dubbo源码分析(6):Code2


    背景

    定义解码和编码方法。 Code2是Code的升级版本。

    类图

    问题

    DubboCodec的父类已经实现了Code2接口并且DubboCodec没有实现Code2接口,为什么要implement Code2接口?

    实验

    场景:定义一个接口I,类A承继并实现接口方法,类B承继类A并实现自己的接口方法,类C承继类B并实现自己的接口方法,类D承继类C不实现接口方法。

    环境

    Oracle -JDK1.8.0_101

    情况1:

    类D实例化一个对象,调用接口方法。

    情况1的结果

    调用得是类C的接口方法

    情况2

       类D承继接口I,并不实现接口方法,调用接口方法

    情况2的结果

         调用得是类C的接口方法

    结论:

    如果低JDK版本(因为没有网线暂时不测试)与JDK1.8表现一致的话,DubboCodec实现Code2接口就是多些一举。

    不知道为什么这么设计

    1.

    2

     protected Object decodeRequestData(Channel channel, ObjectInput in) throws IOException {
            return decodeRequestData(in);
    }
    

    3

     protected Object decodeRequestData(ObjectInput in) throws IOException {
            try {
                return in.readObject();
            } catch (ClassNotFoundException e) {
                throw new IOException(StringUtils.toString("Read object failed.", e));
            }
    }

    明明只要传一个参数非要传三个!为以后需求变动预留得吗?对这种做法非常不赞同。

  • 相关阅读:
    Echrarts的基本API
    Echarts中Option属性设置
    大数据ETL处理时遇到的坑
    模块设计模式
    PAT (Advanced Level) Practice 代码
    递归中的 DFS 与 DP 比较
    CF 1557 D. Ezzat and Grid
    CF 1557 C. Moamen and XOR
    CF 1555 E. Boring Segments
    CF 1555 D. Say No to Palindromes
  • 原文地址:https://www.cnblogs.com/wspgbw/p/6409815.html
Copyright © 2020-2023  润新知