写Java程序最容易犯的21种错误

庞麦郎

庞麦郎

2016-02-19 18:39

今天图老师小编要跟大家分享写Java程序最容易犯的21种错误,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!

1.DuplicatedCode

代码重复几乎是最常见的异味了。他也是Refactoring的主要目标之一。代码重复往往来自于copy-and-paste

的编程风格。与他相对应OAOO是一个好系统的重要标志(请参见我的duplicatedcode一文:http://www.erptao.org/download.PHP?op=viewsdownload&sid=6)。

2.Longmethod

它是传统结构化的“遗毒“。一个方法应当具有自我独立的意图,不要把几个意图放在一起,我的《大类和长方法》一文中有具体描述。

3.LargeClass

大类就是你把太多的责任交给了一个类。这里的规则是OneClassOneResponsibility。

4.DivergentChange

一个类里面的内容变化率不同。某些状态一个小时变一次,某些则几个月一年才变一次;某些状态因为这方面的原因发生变化,而另一些则因为其他方面的原因变一次。面向对象的抽象就是把相对不变的和相对变化相隔离。把问题变化的一方面和另一方面相隔离。这使得这些相对不变的可以重用。问题变化的每个方面都可以单独重用。这种相异变化的共存使得重用非常困难。

5.ShotgunSurgery

这正好和上面相反。对系统一个地方的改变涉及到其他许多地方的相关改变。这些变化率和变化内容相似的状态和行为通常应当放在同一个类中。

6.FeatureEnvy

对象的目的就是封装状态以及与这些状态紧密相关的行为。假如一个类的方法频繁用get方法存取其他类的状态进行计算,那么你要考虑把行为移到涉及状态数目最多的那个类。

7.DataClumps

某些数据通常像孩子一样成群玩耍:一起出现在很多类的成员变量中,一起出现在许多方法的参数中…..,这些数据或许应该自己独立形成对象。

8.PrimitiveObsession

面向对象的新手通常习惯使用几个原始类型的数据来表示一个概念。譬如对于范围,他们会使用两个数字。对于Money,他们会用一个浮点数来表示。因为你没有使用对象来表达问题中存在的概念,这使得代码变的难以理解,解决问题的难度大大增加。

好的习惯是扩充语言所能提供原始类型,用小对象来表示范围、金额、转化率、邮政编码等等。

9.SwitchStatement

基于常量的开关语句是OO的大敌,你应当把他变为子类、state或strategy。

10.ParallelInheritanceHierarchies

并行的继续层次是shotgunsurgery的非凡情况。因为当你改变一个层次中的某一个类时,你必须同时改变另外一个层次的并行子类。

11.LazyClass

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

一个干活不多的类。类的维护需要额外的开销,假如一个类承担了太少的责任,应当消除它。

12.SpeculativeGenerality

一个类实现了从未用到的功能和通用性。通常这样的类或方法唯一的用户是testcase。不要犹豫,删除它。

13.TemporaryField

一个对象的属性可能只在某些情况下才有意义。这样的代码将难以理解。专门建立一个对象来持有这样的孤儿属性,把只和他相关的行为移到该类。最常见的是一个特定的算法需要某些只有该算法才有用的变量。

14.MessageChain

消息链发生于当一个客户向一个对象要求另一个对象,然后客户又向这另一对象要求另一个对象,再向这另一个对象要求另一个对象,如此如此。这时,你需要隐藏分派。

15.MiddleMan

对象的基本特性之一就是封装,而你经常会通过分派去实现封装。但是这一步不能走得太远,假如你发现一个类接口的一大半方法都在做分派,你可能需要移去这个中间

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

人。

16.InappropriateIntimacy

某些类相互之间太亲密,它们花费了太多的时间去砖研别人的私有部分。对人类而言,我们也许不应该太假正经,但我们应当让自己的类严格遵守禁欲主义。

17.AlternativeClasseswithDifferentInterfaces


展开更多 50%)
分享

猜你喜欢

写Java程序最容易犯的21种错误

编程语言 网络编程
写Java程序最容易犯的21种错误

使用Java语言编写程序最容易犯的21种错误

编程语言 网络编程
使用Java语言编写程序最容易犯的21种错误

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

程序员注意:Java开发最容易犯的21种错误

编程语言 网络编程
程序员注意:Java开发最容易犯的21种错误

洗发护发最容易犯的错误

护发 头发护理
洗发护发最容易犯的错误

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

吃鸡蛋最容易犯哪些错误

健康饮食 饮食禁忌 饮食指南 饮食养生
吃鸡蛋最容易犯哪些错误

添加辅食最容易犯的错误

辅食 宝宝辅食
添加辅食最容易犯的错误

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Test of the Java Skill(4)

Test of the Java Skill(4)

java中有关日期的显示问题

java中有关日期的显示问题
下拉加载更多内容 ↓