写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)

相关推荐

  • 多校NOIP31

    技术多校NOIP31 多校NOIP31T1:考场上认为是简单题首先的思路为容斥原理,考虑钦定行或列满足条件
    用总情况数减去不合法情况数即可,考虑的是反演,问
    题如下:不合法方案数的计算公式,于是考虑二维

    礼包 2021年11月19日
  • mybatis中返回值应该配置什么(mybatis中select方法怎么写)

    技术Mybatis Select Count(*)的返回值类型是什么本篇内容介绍了“Mybatis Select Count(*)的返回值类型是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就

    攻略 2021年12月21日
  • MySQL Explain的作用是什么

    技术MySQL Explain的作用是什么本篇内容介绍了“MySQL Explain的作用是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔

    攻略 2021年10月20日
  • Java学习笔记102——StringBuffer类的成员方法—替换功能

    技术Java学习笔记102——StringBuffer类的成员方法—替换功能 Java学习笔记102——StringBuffer类的成员方法—替换功能StringBuffer类的成员方法——替换功能
    S

    礼包 2021年12月17日
  • MySQL5.6.x sha256_password插件登入用户时报错怎么办

    技术MySQL5.6.x sha256_password插件登入用户时报错怎么办MySQL5.6.x sha256_password插件登入用户时报错怎么办,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因

    攻略 2021年10月26日
  • 怎么用C语言与java实现kafka avro生产者和消费者

    技术怎么用C语言与java实现kafka avro生产者和消费者本篇内容介绍了“怎么用C语言与java实现kafka avro生产者和消费者”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带

    攻略 2021年11月15日