gpt4 book ai didi

Java:偶尔使用的对象是否应该作为类成员包含在内?

转载 作者:太空宇宙 更新时间:2023-11-04 10:44:51 25 4
gpt4 key购买 nike

我有一个类CodeText,如下所示:

public class CodeText{
private char type;
private int textCode;
//Other members
}

有时,如果 Symbol 对象引用 CodeText 对象时出现错误,我需要“记录”该 Symbol,以便 CodeText 在发生错误时“知道”谁在引用它。

目前,我在类 CodeText 中添加了另一个成员“latedSymbol”,如下所示,但感觉设计很丑陋。

public class CodeText{
private char type;
private int textCode;
private Symbol relatedSymbol;
//Other members
}

不知道上面的内容是否可以改进。如有任何建议,我们将不胜感激。

编辑:抱歉,我没有提供足够的背景信息。我的目标如下:对于 CodeText 类,textCode 值根据类型进行调整。例如。如果 type 为“I”(表示立即),则 textCode 不变;如果 type 为“E”(表示外部),则应重新计算 textCode,然后引用外部 Symbol 的地址。

但有时,textCode 的值可能是错误的。例如,如果类型为“E”,但 textCode 的值指向到非法的 Symbol,那么应该记录此错误,并且 CodeText 对象应该“知道”它尝试引用哪个 Symbol

最佳答案

Occasionally, if there is an error when a Symbol object refers to a CodeText object, I need to "record" that Symbol so that the CodeText "knows" who is referring it when error happens.

如果您的目标是记录/跟踪错误,那么将导致错误的 Symbol 混合到现有的 CodeText 类中并不是一个好主意,这会打破单一职责原则(查看 here ),因此您可能需要另外一个类,如 ErrorRecorder ,如下所示,其唯一职责是记录错误。

public class ErrorRecorder {

private final CodeText codeText;

private final Symbol relatedSymbol;

private final LocalDateTime errorCreatedDateTime;

public ErrorRecorder(CodeText codeText, Symbol relatedSymbol,
LocalDateTime errorCreatedDateTime) {
super();
//Add some validations to the fields
this.codeText = codeText;
this.relatedSymbol = relatedSymbol;
this.errorCreatedDateTime = errorCreatedDateTime;
}

//Add getters
}

关于Java:偶尔使用的对象是否应该作为类成员包含在内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48529522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com