為什麼Cocoa會為字符串類和集合類(arrays, sets, dictionaries)同時提供可變和不可變的版本?
答案是為樂權衡兩種類型的對象. 不可變的對象一旦創建就不可變. 這意味著可以使用性能更佳的實現.
另一方面, 為樂能修改對象, 系統要付出額外開銷, 這使可變對象難以進行性能優化.
除此之外, 不可變對象天生具有線程安全的特性, 可以傳遞給其他程序員的代碼使用而不必擔心其內容被修改.
當您代碼創建時, 如果不需要改變對象的內容, 最好使用不可變對象.
(以上內容出自 <<Cocoa入門--使用Objective-C>> P89 )
答案是為樂權衡兩種類型的對象. 不可變的對象一旦創建就不可變. 這意味著可以使用性能更佳的實現.
另一方面, 為樂能修改對象, 系統要付出額外開銷, 這使可變對象難以進行性能優化.
除此之外, 不可變對象天生具有線程安全的特性, 可以傳遞給其他程序員的代碼使用而不必擔心其內容被修改.
當您代碼創建時, 如果不需要改變對象的內容, 最好使用不可變對象.
(以上內容出自 <<Cocoa入門--使用Objective-C>> P89 )


