本页使用了标题或全文手工转换

不可變物件

维基百科,自由的百科全书
跳转至: 导航搜索

物件導向函數程式語言中,不可變物件英语Immutable object)是一種物件,在被創造之後,它的狀態就不可以被改變。至於狀態可以被改變的物件,則被稱為可變物件英语mutable object)。

不可變物件具備執行緒安全的特性。此外,相較於可變物件,不可變物件通常也較合理,易於了解,而且提供較高的安全性。

小型的不可變物件可以被有效率的複製,但是較大的不可變物件,如果想要有效率的被複製,就需要更複雜的一致性資料結構(persistent data structure)演算法。因為效能的緣故,有時候會以可變物件來加以取代不可變物件。

典型的例子例如字符串对象:C++ STL 中的 std::wstring 是可变的,即可以修改一个 std::wstring 对象所表示的字符串;而 .net 中的 System.String 是不可变的,System.Text.StringBuilder 才像 std::wstring 一样可变。