我理解VS可變對象不可變對象之間的優劣,但怎麼辦你決定哪一個去設計它。
我之所以問這個問題,是因爲如果它是可變的,只需將對象更改爲初始狀態即可高效且經濟地重用對象,因此,當您處理多步操作時,您可以重複使用它一遍又一遍。鑑於不可變對象性能在執行多步操作時被放大,因爲它在每個步驟都會生成一個新對象。 < - 至於內存是關注
這裏的例子:
//Mutable
A a = new A();
for(int j = 0 ; j < 1000 ; j++){
a.setP1(j);
//do something
}
//Immutable
for(int j = 0 ; j < 1000 ; j++){
A a = new A(j);
//do something
}
我知道不可變對象是THEAD安全的,沒有同步要求,簡單和共享內部,但有這些身邊的任何特殊原因?我們應該什麼時候讓我們的課程成爲最終的(不可變的)?
可能幫助:http://programmers.stackexchange.com/search?q=mutable – Jeremy
http://stackoverflow.com/questions/214714/mutable-vs-immutable-objects –