不可变对象

✍ dations ◷ 2025-04-27 18:10:07 #程式设计小作品,面向对象的程序设计,函数式编程

在面向对象及函数编程语言中,不可变对象(英语:Immutable object)是一种对象,在被创造之后,它的状态(成员变量、属性等的值)就不可以被改变。至于状态可以被改变的对象,则被称为可变对象(mutable object)。

不可变意味着只读不写,因此不可变对象天然地具备线程安全的特性,即是说如无其它特殊限制的话可以在任何线程上自由调用。此外,相较于可变对象,不可变对象在一些场合下也较合理,易于了解,而且提供较高的安全性。

小型的不可变对象可以被有效率的复制,但是较大的不可变对象,如果想要有效率的被复制,就需要更复杂的一致性数据结构(persistent data structure)算法。因为性能的缘故,有时候会以可变对象来加以取代不可变对象。

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

相关

  • 显微镜显微镜泛指将微小不可见或难见物品之影像放大,而能被肉眼或其他成像仪器观察之工具。日常用语中之显微镜多指光学显微镜。放大倍率和清析度(聚焦)为显微镜重要因素。显微镜是在
  • 麦角胺麦角胺是麦角肽碱,是麦角类生物碱的一种,它在结构与生物化学上和Ergoline密切相关。它的结构和几种神经递质的结构相似,并且具有作为血管收缩剂的生物活性。它用于医学上用于治
  • 法国国家足球队法国国家足球队(法语:Équipe de France de football),通常简称为“法国队”,为第一支连续取得世界杯冠军及欧洲国家杯的球队,法国队史上的齐达内、普拉蒂尼等均是世界足球史上的
  • 大葱葱(学名:Allium fistulosum),别名青葱、大葱、叶葱、胡葱、葱仔、菜伯、水葱和事草,为多年生草本植物,叶子圆筒形,中间空,脆弱易折,呈青色。在东亚国家以及各处亚裔地区中,葱常作为一
  • 寡妇寡妇是指死去丈夫的女性,又称孀妇、寡居、守寡或者孀居;死去妻子的男性则称为鳏夫,两者合称鳏寡。现在形容他们婚姻状况的正式名称通常是丧偶。在过去,寡妇的社会地位是重要社会
  • 下奥得河河谷国家公园下奥得河河谷国家公园是德国的国家公园,位于奥得河下游西岸,由勃兰登堡负责管辖,毗邻与波兰接壤的边境,始建于1995年6月28日,面积104平方公里。
  • 录音录音是指将声音转为模拟讯号或机械记录的过程。数字录音是指将模拟信号经由AD转换器将类比(analogy)取样成数字(digital)记录到数字储存装置再由,数字转换回模拟信号的过程录音的
  • 工部工部为中国古代官署名,六部之一。其长官为工部尚书。受中国文化影响,朝鲜半岛的高丽王朝也设有工部,其长官为工部尚书。至朝鲜王朝时期,改称工曹,长官改称工曹判书。受中国文化影
  • 富尔巴里乌帕齐拉 (迪纳杰布尔县)富尔巴里乌帕齐拉(孟加拉语:ফুলবাড়ী,英语:Fulbari Upazila)是孟加拉国迪纳杰布尔县的一个乌帕齐拉,位于朗布尔专区的迪纳杰布尔县。。据1991年孟加拉国人口普查(英语:1991
  • 大汉山国家公园大汉山国家公园(马来语:Taman Negara,意思就是“国家公园”)位于马来西亚半岛,成立于1938年/1939年,当时名为乔治五世国家公园。马来西亚独立后,更其名为“国家公园”,因大汉山座落