zoukankan      html  css  js  c++  java
  • 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));
            }
    }

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

  • 相关阅读:
    自己编译linux内核
    codeblocks中文输入及控制台乱码
    c快速学习代码
    二分法求方程解
    苹果公司前任首席执行官乔布斯语录
    html5特性
    lamp server快速搭建
    poj 1247 Magnificent Meatballs 解题报告
    Ural 1005 Stone Pilet 解题报告
    Ural 1020 Rope 解题报告
  • 原文地址:https://www.cnblogs.com/wspgbw/p/6409815.html
Copyright © 2011-2022 走看看