写Java程序最容易犯的21种错误是什么?我相信很多没有经验的人都不知所措。为此,本文总结了问题产生的原因及解决方法。希望你能通过这篇文章解决这个问题。
编写Java程序最容易犯的21种错误实例分析
1.Duplicated Code
代码重复几乎是最常见的气味。他也是《重构》的主要目标之一。代码重复往往来自于复制粘贴的编程风格相应的OAOO是一个好系统的重要标志。 2.Long method
它是传统结构的遗产。一个方法应该有自我独立的意图。不要把几个意图放在一起。
3.Large Class
一个大班意味着你给了一个班太多的责任。这里的规则是一级一责。
4.Divergent Change
一个班级内容的变化率是不一样的。有的状态每小时换一次,有的状态几个月一年才换一次;有些州因为这个原因而改变,有些州因为其他原因而改变一次。面向对象的抽象是把相对不变性和相对变化分开。将问题的一个方面与另一个方面分开。这使得这些相对不变的可以重复使用。变更的每个方面都可以单独重用。这些不同变化的共存使得重用变得非常困难。
5.Shotgun Surgery
这和上面的正好相反。系统某一部分的变化涉及许多其他地方的相关变化。这些变化率和变化内容相似的状态和行为通常应该放在同一个类中。
6.Feature Envy
对象的目的是封装与这些状态密切相关的状态和行为。如果一个类的方法经常使用get方法来访问其他类的状态进行计算,那么您应该考虑将行为移动到涉及状态数量最多的类。 7.Data Clumps
有些数据通常像孩子一样分组使用:它们一起出现在许多类的成员变量和许多方法的参数中。也许这些数据应该独立地形成对象。
8.Primitive Obsession
面向对象的新手通常习惯于使用几种原始类型的数据来表示一个概念。例如,对于范围,它们将使用两个数字。对于货币,他们会用一个浮点数来表示。因为不使用对象来表达问题中的概念,使得代码难以理解,解决问题的难度大大增加。一个好习惯是扩展语言可以提供的原语类型,用小对象来表示范围、金额、转化率、邮政编码等等。
9.Switch Statement
基于常量的切换语句是OO的敌人,您应该将它们更改为子类、状态或策略。 10. Parallel Inheritance Hierarchies.
平行的继承层次是霰弹枪手术的特例。因为当您在一个级别中更改一个类时,您必须同时更改另一个级别的并行子类。
11. Lazy Class
没什么工作的班级。维护一个类需要额外的开销。如果一个班级承担的责任太少,就应该被淘汰。 12. Speculative Generality
一个类实现了以前从未使用过的功能和通用性。通常,这样的类或方法的唯一用户是testcase。不要犹豫删除它。 13. Temporary Field
对象的属性可能只有在某些情况下才有意义。这样的代码将很难理解。设置一个特殊的对象来保存这样的孤立属性,并将与它相关的行为移到这个类中。最常见的情况是,特定的算法需要一些仅对该算法有用的变量。
14. Message Chain
当客户从一个对象向另一个对象请求,然后客户从另一个对象向另一个对象请求,再从另一个对象向另一个对象请求,以此类推时,就会出现消息链。此时,您需要隐藏任务。
15. Middle Man
对象的基本特征之一是封装,您经常发送它来实现封装。但是这一步不能走太远。如果你发现一个类接口一半以上的方法都是分派的,你可能需要去掉这个中间人。
16. Inappropriate Intimacy
有些班级太接近了,他们花太多时间研究别人的隐私。对于人类来说,我们大概不应该太过假正经。
,但我们应当让自己的类严格遵守禁欲主义。
17. Alternative Classes with Different Interfaces
做相同事情的方法有不同的函数signature,一致把它们往类层次上移,直至协议一致。
18. Incomplete Library Class
要建立一个好的类库非常困难。我们大量的程序工作都基于类库实现。然而,如此广泛而又相异的目标对库构建者提出了苛刻的要求。库构建者也不是万能的。有时候我们会发现库类无法实现我们需要的功能。而直接对库类的修改有非常困难。这时候就需要用各种手段进行Refactoring.
19. Data Class
对象包括状态和行为。如果一个类只有状态没有行为,那么肯定有什么地方出问题了。
20. Refused Bequest
超类传下来很多行为和状态,而子类只是用了其中的很小一部分。这通常意味着你的类层次有问题。
21. Comments
经常觉得要写很多注释表示你的代码难以理解。如果这种感觉太多,表示你需要Refactoring.
看完上述内容,你们掌握写Java程序最容易犯的21种错误是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/94838.html