Joshua Bloch給出的建議之一是,類應該被設計爲不可變的。不可變的類設計
我有下面的類
public class Dividend {
public Dividend setDate(SimpleDate date) {
Dividend dividend = new Dividend(this.getStock(), this.getAmount(), date);
return dividend;
}
.....// More to go.
對於的setDate方法,此對象將不會被修改。
而是返回這個的克隆副本,其日期字段被修改。
但是,從方法名稱判斷,用戶如何知道這個對象仍然是不變的?
除setDate之外還有更好的命名約定嗎?
Class'Divident'有一個'setComment'方法來修改對象嗎?然後它不是不可變的。 – Jesper 2010-08-01 16:25:56
如果你的setComment方法是私有的,那麼只有這個類是不可變的。 – Gopi 2010-08-01 16:29:41
而不是'setDate',你可以嘗試像'onDate' /'withDate' /'forDate'等。 – polygenelubricants 2010-08-01 16:36:24