Một trong những lời khuyên được đưa ra bởi Joshua Bloch là, lớp học nên được thiết kế như là bất biến.Thiết kế lớp học không thể thay đổi
Tôi có lớp sau
public class Dividend {
public Dividend setDate(SimpleDate date) {
Dividend dividend = new Dividend(this.getStock(), this.getAmount(), date);
return dividend;
}
.....// More to go.
Đối setDate phương pháp, đối tượng này sẽ không được sửa đổi.
Thay vào đó, bản sao của này với trường ngày của nó đang được sửa đổi sẽ được trả về.
Tuy nhiên, bằng cách đánh giá tên phương thức, người dùng sẽ biết đối tượng này sẽ vẫn không thay đổi được như thế nào?
Có quy ước đặt tên tốt hơn bên cạnh setDate không?
Lớp 'Divident' có phương thức 'setComment' để sửa đổi đối tượng không? Sau đó, nó không phải là bất biến. – Jesper
Nếu phương thức của bạn là riêng tư thì chỉ có lớp này là không thay đổi. – Gopi
Thay vì 'setDate', bạn có thể thử những thứ như' onDate'/'withDate' /' forDate', v.v. – polygenelubricants