java编写代码时易出错_写Java程序最容易犯的错误有哪些呢?
1。Duplicated Code
代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste的编程风格。与他相对应OAOO是一个好系统的重要标志。
2。Long method
它是传统结构化的“遗毒”。
一个方法应当具有自我独立的意图,不要把几个意图放在一起。
3。Large Class
大类就是你把太多的责任交给了一个类。这里的规则是One Class One Responsibility。
4。Divergent Change
一个类里面的内容变化率不同。
某些状态一个小时变一次,某些则几个月一年才变一次;某些状态因为这方面的原因发生变化,而另一些则因为其他方面的原因变一次。面向对象的抽象就是把相对不变的和相对变化相隔离。把问题变化的一方面和另一方面相隔离。这使得这些相对不变的可以重用。问题变化的每个方面都可以单独重用。
这种相异变化的共存使得重用非常困难。
5。Shotgun Surgery
这正好和上面相反。对系统一个地方的改变涉及到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行为通常应当放在同一个类中。
6。Feature Envy
对象的目的就是封装状态以及与这些状态紧密相关的行为。
如果一个类的方法频繁用get 方法存取其他类的状态进行计算,那么你要考虑把行为移到涉及状态数目最多的那个类。
7。Data Clumps
某些数据通常像孩子一样成群玩耍:一起出现在很多类的成员变量中,一起出现在许多方法的参数中,这些数据或许应该自己独立形成对象。
8。Primitive Obsession
面向对象的新手通常习惯使用几个原始类型的数据来表示一个概念。譬如对于范围,他们会使用两个数字。对于Money,他们会用一个浮点数来表示。因为你没有使用对象来表达问题中存在的概念,这使得代码变的难以理解,解决问题的难度大大增加。
好的习惯是扩充语言所能提供原始类型,用小对象来表示范围、金额、转化率、邮政编码等等。
9。Switch Statement
基于常量的开关语句是OO 的大敌,你应当把他变为子类、state或strategy。
10。 Parallel Inheritance Hierarchies
并行的继承层次是shotgun surgery的特殊情况。
因为当你改变一个层次中的某一个类时,你必须同时改变另外一个层次的并行子类。
11。 Lazy Class
一个干活不多的类。类的维护需要额外的开销,如果一个类承担了太少的责任,应当消除它。
12。 Speculative Generality
一个类实现了从未用到的功能和通用性。
通常这样的类或方法唯一的用户是testcase。不要犹豫,删除它。
全部
java编写代码时易出错_写Java程序最容易犯的错误有哪些呢?相关推荐
- java编写代码时易出错_归纳:编写Java程序最容易犯的21种错误
1.Duplicated Code 代码重复几乎是最常见的异味了.他也是Refactoring的主要目标之一.代码重复往往来自于copy-and-paste的编程风格.与他相对应OAOO是一个好系统的 ...
- java编写代码时易出错_JAVA中易出错的小问题(一)
----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 第一:奇数性 static boolean isodd(int i){ re ...
- 用java编写一个简易功能画板_用Java语言编写一个简易画板
讲了三篇概博客的概念,今天,我们来一点实际的东西.我们来探讨一下如何用Java语言,编写一块简易的画图板. 一.需求分析 无论我们使用什么语言,去编写一个什么样的项目,我们的第一步,总是去分析这个项目 ...
- java工程打包时进行签名_使用Java SDK实现离线签名
严格来说,tx-signer并不属于SDK,它是bytomd中构建交易.对交易签名两大模块的java实现版.因此,若想用tx-signer对交易进行离线签名,需要由你在本地保管好自己的私钥. 如果你的 ...
- java用代码实现星期菜谱_基于JAVA的菜谱大全接口调用代码实例
基于JAVA的菜谱大全接口调用代码实例 代码描述:基于JA V A的菜谱大全接口调用代码实例 接口平台:聚合数据 import java.io.BufferedReader; import java. ...
- java 编写代码_如果您在2016年编写过Java代码-这是您不容错过的趋势
java 编写代码 2016年最有趣的Java相关主题 关于代码,有很多热门话题,而要跟上所有事情,这是一项全职的工作. 如果您想知道如何从谷壳中分离出小麦,我们已经为您完成了工作. 在下面的文章中, ...
- vb.net编写函数应该在哪里_编写代码时清晰至上
好的代码是清晰的代码,而不是聪明的代码 Photo by David Travis on Unsplash 许多程序员尝试编写干净,智能的代码. 但是,有时候,痴迷于智能可能会使代码库更难以理解,并且 ...
- java编写代码用什么_如何学习用Java编写代码:为什么要学习以及从哪里开始
java编写代码用什么 by John Selawsky 约翰·塞劳斯基(John Selawsky) 如何学习用Java编写代码:为什么要学习以及从哪里开始 (How to learn to cod ...
- java 编写代码_如果您在2015年编写过Java代码-这是您不容错过的趋势
java 编写代码 去年我们有机会遇到的最有趣趋势的实用概述 在这篇文章中,我们回顾了构成我们2015年对话的5个主题和新发展.与其他许多年终总结保持较高水平的不同,我们将做一个更实际的操作不用流行语 ...
最新文章
- css3 奇技淫巧 - 如何给小汽车换个背景色谈起
- oracle的connect by语句
- juqery代码优化
- 学计算机应用技术应具备什么素养,2018年云南经济管理学院单招计算机应用技术职业适应性测试大纲...
- Window.location.href命令在JS中跳转无效或自动忽略
- mootools LightBox
- 3.3 keras模型构建的三种方式
- vue-router 修改或添加新参数
- 日语学习之——学习技巧
- Excel宏的介绍及应用
- oracle 同义词转换错误,一次对dual表的恢复操作(ORA-00980:同义词转换不再有效错误解决方法) (转载)...
- PS学习-曝光与色彩处理(二)--纯净自然的高调照片
- Apple Watch简述
- u8如何备份文件服务器,用友u8 数据备份到云服务器
- Cura gui 代码编译流程
- openGL 纹理使用
- 新版RTSP协议网络摄像头网页无插件直播平台EasyNVR如何自定义通道的背景音乐?
- 上证50成分股聚类可视化
- 国产CPU产业链的逻辑架构
- Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)
热门文章
- margin和padding的区别
- 传图识字java_Java:全面 清晰的 NIO 学习攻略
- 0网卡开启_中标麒麟Linux v7系统下设置双网卡bond或team绑定详细过程
- SpringCloud Sleuth分布式请求链路追踪
- (JAVA)集合Collection3
- bzoj 4016: [FJOI2014]最短路径树问题
- luogu P1659 养猪 dp 好理解
- 《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问
- [2-sat]HDOJ3062 Party
- 三白话经典算法系列 Shell排序实现