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

技术写Java程序最容易犯的21种错误是怎样的写Java程序最容易犯的21种错误是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。写Java程序最容易犯

写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

(0)

相关推荐

  • 如何使用torch.le和le(其他)

    技术torch.le和le(other)怎么使用本篇内容主要讲解“torch.le和le(other)怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“torch.le和

    攻略 2021年12月24日
  • 字母顺序,bpmf拼音26个字母顺序

    技术字母顺序,bpmf拼音26个字母顺序声母 b p m f d t n l g k h j q x zh ch sh r z c s y w 韵母 a o

    生活 2021年10月23日
  • 删除排序数组中的重复项 ----java

    技术删除排序数组中的重复项 ----java 删除排序数组中的重复项 ----java给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

    礼包 2021年11月4日
  • 如何在Mac下搭建MySQL环境

    技术如何在Mac下搭建MySQL环境小编给大家分享一下如何在Mac下搭建MySQL环境,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 方法一:用dmg镜像安装1、安装官网下载

    攻略 2021年10月28日
  • html进度条代码(html进度条显示百分比)

    技术html5进度条的标签是哪个本篇内容主要讲解“html5进度条的标签是哪个”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html5进度条的标签是哪个”吧!

    攻略 2021年12月15日
  • 玩具(Toy)

    技术玩具(Toy) 玩具(Toy)清华OJ——数据结构与算法实验(中国石油大学)玩具(Toy)Description
    ZC God is best at logical reasoning. One d

    礼包 2021年11月27日