我有一个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
}

07-24 17:33