考虑使用Java中的Message对象来存储一些文本.
public class Message {
private String text;
private boolean containsDigit;
public Message() {
//constructor
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public boolean isContainsDigit() {
return containsDigit;
}
}
这是一个持久化对象.
我在构造函数中设置数据没有问题,但是可以在创建对象之后设置Message的文本字段,并且在设置文本时,containsDigit字段此后也应该是可查询的.
显而易见的方法是在setter中:
public void setText(String text) {
// presume existence of method to check for digit
if(text.containsDigit())
this.containsDigit = true;
this.text = text;
}
但是,由于在setter方法中有逻辑,这是否会导致任何“最佳实践”警报响起?
有人会建议替代实施吗?
编辑
我应该添加containsDigit字段是必需的,因为该对象是持久的,因此可以随后查询containsDigit字段.
此外,在使用Spring / Hibernate引擎的应用程序中,在重新读取/写入对象时不断调用此setter,因此也想知道它的实用性/效率.
解决方法:
你的情况是使用setter和getter的原因.如果你不允许在setter中使用逻辑,那么你也可以直接访问这些字段!