假设我有一个具有给定结构的类:
class Problem {
private String longString;
private String firstHalf;
private String secondHalf;
}
上半场
和
下半场
根据以下公式计算
长字符串
和在我的应用程序中广泛使用,但是我不想序列化它们。现在,为了使这个对象的序列化工作,我需要一个setter
长字符串
.我想保护不变量
上半场
和
下半场
根据以下公式计算
长字符串
,仅存在于
长字符串
存在,并且该值传递给
长字符串
在可以计算第一和第二半的意义上是正确的。我目前的解决方案是让setter
长字符串
这样写:
public void setLongString(String value) {
this.longString=value;
this.firstHalf=computeFirstHalf(value);
this.secondHalf=computeSecondHalf(value);
}
此代码还意味着
长字符串
以及第一和第二半部分。
然而,有一件事让我恼火,那就是这个方法
设置长字符串
实际上有三件事,它的名字并不能反映它的真实行为。
有没有更好的编码方法?
编辑1:
我正在使用Jackson to json序列化程序,我有前半部分和后半部分的getter,用@JsonIgnore注释。
我想表达两者之间的紧密耦合
长字符串
它是两半。