我有一个CodeText
类别,如下所示:
public class CodeText{
private char type;
private int textCode;
//Other members
}
有时,如果
Symbol
对象引用CodeText
对象时发生错误,我需要“记录”该Symbol
,以便CodeText
知道发生错误时正在引用它的人。目前,我在类
CodeText
中添加了另一个成员“ relatedSymbol”,如下所示,但是感觉很丑陋。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
。 最佳答案
有时,如果Symbol对象引用一个
CodeText对象,我需要“记录”该Symbol以便CodeText
错误发生时“知道”谁在引用它。
如果您的目标是记录/跟踪错误,则将导致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
}