我读了 Effective Java,并写了
如果一个类不能成为不可变的,则尽可能限制它的可变性......
和
...使每个字段都成为最终的,除非有令人信服的理由使它成为非最终的。
所以我需要让我所有的 POJO(例如简单的Book
类ID
,Title
和Author
字段)类不可变吗?当我想改变我的对象的状态时(例如用户在代表许多书籍的表中改变它),而不是设置器使用这样的方法:
public Book changeAuthor(String author) {
return new Book(this.id, this.title, author); //Book constructor is private
}
但我的东西真的不是好主意..
请解释一下何时使类不可变。