English 中文(简体)
避免在 POJO 类中重复代码
原标题:Avoid duplicate code in POJO Class

Let s say we have 3 classes: A, B and C. Each class has the others in parameter. Like this: EDIT:

 +-----+  +-----+  +-----+
 |  A  |  |  B  |  |  C  |
 -------  -------  -------
 | X x |  | X x |  | Z z |
 | Z z |  | Y Y |  | Y y |
 -------  -------  -------

Getters 和 secondter 将被复制。 所以, 这是否是一种错误的做法, 我们应该避免吗? 还是这不应该被代码分析器( 例如 PMB) 视为重复代码?

我想到了"战略模式" 但我觉得可能太过分了

EDIT:我的第一个问题也许并不十分清楚。 问题在于我们是否拥有两个班级( 没有连接), 与一个共同的教区完全相同。 Sonar 或 PMD 应该将这些方法视为重复代码? 如果不是的话, 它会被固定吗?

最佳回答

正如已经指出的,首先考虑一下你是否真的需要重复。也许它们应该属于一个共同对象,通过它们。也许不需要它们。

现在让我们假设真的需要它们。 当然可以这样。 PMD s 复制粘贴检测器可以让您在它算作重复之前设定最小行数。 因为采集器/设计器每行只有三行( 或两行各有六行), 您可以设定上面的阈值 。

问题回答

这是一种循环参考,一般是不良做法。 您可以重新设计不这样做吗?

复制代码并非总是错误的想法, 在某些情况中, 生成某些克隆是不可避免的。 设置者和获取者现在正在生成, 但也的确现在正在生成设置者和获取者, 但是也正在生成循环, 这些代码不应在手工维护时自动被排除 。 强制删除代码重复并不是一个好主意 。 基本上并非所有重复都是坏的, 也不总能弥补它们的消除 。 所谓克隆管理, 即跟踪现有的重复, 并消除真正引起麻烦的重复。 因为您需要一个复杂的工具, 比如 FrontEndART s < a href=" "http://www. quality- gate.com/ "rel=" reformation\\\\\\\\\\\\\\\\ a, 包含一个 < a href=" 。 intlegalGate < > 。 com/ modulees/ cloomes/\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

设置者和获得者是自动生成的代码, 所以他们从来不是代码重复(是有人手写吗?

唯一需要考虑的问题是,如果数据重复的话。在您的例子上无法说出口,因为 A类和 C类的字段b 可能有其他含义。

这就像客户与建筑的外地地址。它意味着别的东西。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签