我在之前一篇博客里https://www.cnblogs.com/yangfeiORfeiyang/p/9644254.html 里对Netflix Ribbon的Loadbalancer类源码设计的合理性提出了自己的质疑,然后很多人觉得大师的代码怎么可能会错?你个菜鸡也敢质疑大神写的代码?那我今天就拿出确凿的证据来

首先,我们来看看这个类

choose(ILoadBalancer lb, Object key)方法,请注意我画红线的地方

我们再来看看

再来看下

看到这里大家应该明白了吧?因为把不会变的对象封装到了可变的细节里,导致每个细节都需要重复做判断,这样会导致什么问题呢?当然是重复代码呀.当然你也可以说有些判断必须要到细节里去判断,但我们抽的只是重复判断呀,细节里需要的判断,细节自己去判断好了.

最后给正确示例

												

最新文章

  1. [CentOS7服务器] 更改系统时间
  2. PHP文件的读取
  3. 使用SharePoint Designer定制开发员工工作日志系统实例!
  4. 详解Paint的各种set方法
  5. Scala之Map,Tuple
  6. php strtotime 和 date 日期操作
  7. .classpath 和.project文件含义
  8. 贪心(数据结构):COGS 468. [NOI2010]超级钢琴
  9. Go语言之defer
  10. JMeter数据库性能测试
  11. Android自定义垂直滚动自动选择日期控件
  12. bootstrap快速入门笔记(七)-表格,表单
  13. 张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块
  14. C#算法面试题
  15. hashtable的运用实例
  16. JS 中判断空值 undefined 和 null
  17. java.util中,util是什么意思
  18. Codeforces Round #309 (Div. 2)
  19. sql常用问题(一)
  20. MVC中如何避免POST请求中出现的重复提交

热门文章

  1. cookie安全
  2. ActiveMQ消息丢失怎么解决?
  3. 解决android studio设置版本号
  4. 2012-2013 ACM-ICPC, NEERC, Central Subregional Contest C Sequence (打表)
  5. jquery实现跑马灯效果(一)
  6. 3d点云
  7. 数组初始化 和 vector初始化
  8. Jordan 标准型的推论
  9. [LUOGU] P1908 逆序对
  10. [LUOGU] P1536 村村通