An Entity of Type: Thing, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created. This is in contrast to a mutable object (changeable object), which can be modified after it is created. In some cases, an object is considered immutable even if some internally used attributes change, but the object's state appears unchanging from an external point of view. For example, an object that uses memoization to cache the results of expensive computations could still be considered an immutable object.

Property Value
dbo:abstract
  • Immutable object (česky neměnný objekt) je název pro návrhový vzor, používaný při programování. Vyznačuje se tím, že žádná z jeho metod není schopná změnit jeho nastavenou hodnotu. (cs)
  • In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created. This is in contrast to a mutable object (changeable object), which can be modified after it is created. In some cases, an object is considered immutable even if some internally used attributes change, but the object's state appears unchanging from an external point of view. For example, an object that uses memoization to cache the results of expensive computations could still be considered an immutable object. Strings and other concrete objects are typically expressed as immutable objects to improve readability and runtime efficiency in object-oriented programming. Immutable objects are also useful because they are inherently thread-safe. Other benefits are that they are simpler to understand and reason about and offer higher security than mutable objects. (en)
  • En programación orientada a objetos y programación funcional un «objeto inmutable» es un objeto cuyo estado no puede ser modificado una vez creado.​ Es el opuesto a los «objetos mutables», que pueden ser modificados tras su creación. En algunos casos un objeto puede ser considerado como inmutable aunque algunos de sus atributos internos cambie, siempre y cuando el estado del objeto parezca no cambiar desde un punto de vista externo al mismo. Por ejemplo, un objeto que use memoización para cachear los resultados de cálculos costosos puede ser considerado un objeto inmutable. Los objetos inmutables suelen ser útiles dado que son seguros en entornos multihilo.​Otro beneficio es que son más fáciles de entender y razonar sobre ellos además de que ofrecen mayor seguridad que los objetos mutables.​ (es)
  • Un objet immuable, en programmation orientée objet et fonctionnelle, est un objet dont l'état ne peut pas être modifié après sa création. Ce concept est à contraster avec celui d'objet variable. (fr)
  • 객체 지향 프로그래밍에 있어서 불변객체(immutable object)는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 반대 개념으로는 가변(mutable) 객체로 생성 후에도 상태를 변경할 수 있다. 객체 전체가 불변인 것도 있고, C++에서 const 데이터 멤버를 사용하는 경우와 같이 일부 속성만 불변인 것도 있다. 또, 경우에 따라서는 내부에서 사용하는 속성이 변화해도 외부에서 그 객체의 상태가 변하지 않은 것처럼 보인다면 불변 객체로 보기도 한다. 예를 들어, 비용이 큰 계산의 결과를 캐시하기 위해 메모이제이션(Memoization)을 이용하더라도 그 객체는 여전히 불변하다고 볼 수있다. 불변 객체의 초기 상태는 대개 생성 시에 결정되지만 객체가 실제로 사용되는 순간까지 늦추기도 한다. 불변 객체를 사용하면 복제나 비교를 위한 조작을 단순화 할 수 있고, 성능 개선에도 도움을 준다. 하지만 객체가 변경 가능한 데이터를 많이 가지고 있는 경우엔 불변이 오히려 부적절한 경우가 있다. 이 때문에 많은 프로그래밍 언어에서는 불변이나 가변 중 하나를 선택할 수 있도록 하고 있다. (ko)
  • イミュータブル (英: immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (英: mutable) なオブジェクトで、作成後も状態を変えることができる。mutableは「変更可能な」、immutableは「変更不可能な、不変の」という意味を持つ形容詞である。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる。イミュータブルなオブジェクトの初期状態は大抵は生成時に設定されるが、オブジェクトが実際に使用されるまで遅らせることもある。 イミュータブルなオブジェクトを使うと、複製や比較のための操作を省けるため、コードが単純になり、また性能の改善にもつながる。しかしオブジェクトが変更可能なデータを多く持つ場合には、イミュータブル化は不適切となることが多い。このため、多くのプログラミング言語ではイミュータブルかミュータブルか選択できるようにしている。 (ja)
  • В программировании неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания. В функциональном программировании все (в случае чистых языков) или почти все (в случае «нечистых» — англ. impure — языков) данные в программе, как локальные, так и глобальные, являются неизменяемыми. С одной стороны, это существенно повышает стабильность программ за счёт упрощения формальной верификации программ. С другой, это затрудняет решение ряда задач (из которых наиболее часто отмечается задача реализации интерфейса пользователя, который в своей сути представляет собой изменяемое состояние), что вынуждает усложнять системы типов языка — например, монадами или . В объектно-ориентированном программировании неизменяемые объекты создаются посредством соответствующего шаблона проектирования. Неизменяемые объекты интересны, например, тем, что потоко-безопасны. (ru)
  • Незмі́нний об'є́кт (англ. Immutable object) — в об'єктно-орієнтованому програмуванні, об'єкт, стан якого не може бути змінено після створення. На противагу незмінним, стан змінних об'єктів може змінюватись після створення. Об'єкт може бути як незмінним повністю, так і певні його атрибути можуть бути задекларовані незмінними, використовуючи, наприклад, декларацію const мови програмування C++. У деяких випадках, об'єкт вважається незмінним навіть тоді, коли змінюються деякі його внутрішні атрибути, за умови, що зовні його стан виглядає незмінним. Наприклад, об'єкт, який використовує запам'ятовування результатів проміжних обчислень для кешування результатів складних обчислень, може вважатись незмінним. Початковий стан незмінного об'єкта, як правило, визначається , але, він може, також, визначатись безпосередньо перед використанням об'єкта. Часто, незмінні об'єкти можуть бути корисними через те, що вони дозволяють уникнути деяких дорогих операцій копіювання та порівняння, полегшуючи, в такий спосіб, вихідний код програми, та прискорюючи її роботу. Однак, у деяких випадках, незмінність об'єкта може заважати, наприклад, якщо об'єкт містить велику кількість змінних даних. Через це, багато мов програмування мають можливості роботи як із змінними, так і з незмінними об'єктами. Незмінні об'єкти часто бувають корисними завдяки тому, що вони по суті потоко-безпечні. Інша перевага в тому, що вони є простішими для розуміння і пропонують більш високий рівень безпеки, ніж змінювані об'єкти. (uk)
  • Em programação orientada a objetos e funcional, um objeto imutável é um objeto no qual seu estado não pode ser modificado após ser criado. Ele é um contraste com um objeto mutável, que pode ser modificado após sua criação. Um objeto pode ser ou inteiramente imutável ou possuir alguns atributos que podem ser declarados como imutáveis; por exemplo, usando o atributo de dado membro na linguagem de programação C++. Em alguns casos, um objeto é considerado imutável mesmo que alguns atributos internos utilizados mudem mas o estado do objeto aparece como inalterado de um ponto de vista externo. Por exemplo, um objeto que utilize para armazenar os resultados de computações custosas ainda poderia ser considerado como um objeto imutável. Objetos imutáveis são frequentemente úteis pois algumas operações custosas para cópia e comparação podem ser omitidas, simplificando o código do programa e acelerando a execução. Contudo, tornar um objeto imutável é normalmente não apropriado se o objeto contem uma grande quantidade de dados alteráveis. Devido a isto, muitas linguagens permitem tanto objetos imutáveis e mutáveis. (pt)
  • 在物件導向及函數程式語言中,不可變物件(英語:Immutable object)是一種物件,在被創造之後,它的狀態(成员变量、属性等的值)就不可以被改變。至於狀態可以被改變的物件,則被稱為可變物件(mutable object)。 不可变意味着不写,因此不可變物件天然地具備執行緒安全的特性,即是说如无其它特殊限制的话可以在任何线程上自由调用。此外,相較於可變物件,不可變物件在一些场合下也較合理,易於了解,而且提供較高的安全性。 小型的不可變物件可以被有效率的複製,但是較大的不可變物件,如果想要有效率的被複製,就需要更複雜的可持久化数据结构演算法。因為效能的緣故,有時候會以可變物件來加以取代不可變物件。 典型的例子例如字符串对象:C++ STL 中的 std::basic_string 是可变的,即可以修改一个 std::basic_string 对象所表示的字符串;而 .net 中的 System.String 是不可变的,System.Text.StringBuilder 才像 std::basic_string 一样可变。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 197824 (xsd:integer)
dbo:wikiPageLength
  • 32030 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1079903221 (xsd:integer)
dbo:wikiPageWikiLink
dbp:date
  • July 2017 (en)
dbp:reason
  • This is a controversial claim, so should be supported by a source other than the Scala foundation itself. (en)
dbp:wikiPageUsesTemplate
dcterms:subject
rdfs:comment
  • Immutable object (česky neměnný objekt) je název pro návrhový vzor, používaný při programování. Vyznačuje se tím, že žádná z jeho metod není schopná změnit jeho nastavenou hodnotu. (cs)
  • Un objet immuable, en programmation orientée objet et fonctionnelle, est un objet dont l'état ne peut pas être modifié après sa création. Ce concept est à contraster avec celui d'objet variable. (fr)
  • 객체 지향 프로그래밍에 있어서 불변객체(immutable object)는 생성 후 그 상태를 바꿀 수 없는 객체를 말한다. 반대 개념으로는 가변(mutable) 객체로 생성 후에도 상태를 변경할 수 있다. 객체 전체가 불변인 것도 있고, C++에서 const 데이터 멤버를 사용하는 경우와 같이 일부 속성만 불변인 것도 있다. 또, 경우에 따라서는 내부에서 사용하는 속성이 변화해도 외부에서 그 객체의 상태가 변하지 않은 것처럼 보인다면 불변 객체로 보기도 한다. 예를 들어, 비용이 큰 계산의 결과를 캐시하기 위해 메모이제이션(Memoization)을 이용하더라도 그 객체는 여전히 불변하다고 볼 수있다. 불변 객체의 초기 상태는 대개 생성 시에 결정되지만 객체가 실제로 사용되는 순간까지 늦추기도 한다. 불변 객체를 사용하면 복제나 비교를 위한 조작을 단순화 할 수 있고, 성능 개선에도 도움을 준다. 하지만 객체가 변경 가능한 데이터를 많이 가지고 있는 경우엔 불변이 오히려 부적절한 경우가 있다. 이 때문에 많은 프로그래밍 언어에서는 불변이나 가변 중 하나를 선택할 수 있도록 하고 있다. (ko)
  • 在物件導向及函數程式語言中,不可變物件(英語:Immutable object)是一種物件,在被創造之後,它的狀態(成员变量、属性等的值)就不可以被改變。至於狀態可以被改變的物件,則被稱為可變物件(mutable object)。 不可变意味着不写,因此不可變物件天然地具備執行緒安全的特性,即是说如无其它特殊限制的话可以在任何线程上自由调用。此外,相較於可變物件,不可變物件在一些场合下也較合理,易於了解,而且提供較高的安全性。 小型的不可變物件可以被有效率的複製,但是較大的不可變物件,如果想要有效率的被複製,就需要更複雜的可持久化数据结构演算法。因為效能的緣故,有時候會以可變物件來加以取代不可變物件。 典型的例子例如字符串对象:C++ STL 中的 std::basic_string 是可变的,即可以修改一个 std::basic_string 对象所表示的字符串;而 .net 中的 System.String 是不可变的,System.Text.StringBuilder 才像 std::basic_string 一样可变。 (zh)
  • In object-oriented and functional programming, an immutable object (unchangeable object) is an object whose state cannot be modified after it is created. This is in contrast to a mutable object (changeable object), which can be modified after it is created. In some cases, an object is considered immutable even if some internally used attributes change, but the object's state appears unchanging from an external point of view. For example, an object that uses memoization to cache the results of expensive computations could still be considered an immutable object. (en)
  • En programación orientada a objetos y programación funcional un «objeto inmutable» es un objeto cuyo estado no puede ser modificado una vez creado.​ Es el opuesto a los «objetos mutables», que pueden ser modificados tras su creación. En algunos casos un objeto puede ser considerado como inmutable aunque algunos de sus atributos internos cambie, siempre y cuando el estado del objeto parezca no cambiar desde un punto de vista externo al mismo. Por ejemplo, un objeto que use memoización para cachear los resultados de cálculos costosos puede ser considerado un objeto inmutable. (es)
  • イミュータブル (英: immutable) なオブジェクトとは、作成後にその状態を変えることのできないオブジェクトのことである。対義語はミュータブル (英: mutable) なオブジェクトで、作成後も状態を変えることができる。mutableは「変更可能な」、immutableは「変更不可能な、不変の」という意味を持つ形容詞である。 あるオブジェクト全体がイミュータブルなこともあるし、C++でconstデータメンバを使う場合など、一部の属性のみがイミュータブルなこともある。場合によっては、内部で使われている属性が変化しても、外部からオブジェクトの状態が変化していないように見えるならば、オブジェクトをイミュータブルとみなすことがある。例えば、コストの高い計算の結果をキャッシュするためにメモ化を利用していても、そのオブジェクトは依然イミュータブルとみなせる。イミュータブルなオブジェクトの初期状態は大抵は生成時に設定されるが、オブジェクトが実際に使用されるまで遅らせることもある。 (ja)
  • В программировании неизменяемым (англ. immutable) называется объект, состояние которого не может быть изменено после создания. В функциональном программировании все (в случае чистых языков) или почти все (в случае «нечистых» — англ. impure — языков) данные в программе, как локальные, так и глобальные, являются неизменяемыми. С одной стороны, это существенно повышает стабильность программ за счёт упрощения формальной верификации программ. С другой, это затрудняет решение ряда задач (из которых наиболее часто отмечается задача реализации интерфейса пользователя, который в своей сути представляет собой изменяемое состояние), что вынуждает усложнять системы типов языка — например, монадами или . (ru)
  • Em programação orientada a objetos e funcional, um objeto imutável é um objeto no qual seu estado não pode ser modificado após ser criado. Ele é um contraste com um objeto mutável, que pode ser modificado após sua criação. Um objeto pode ser ou inteiramente imutável ou possuir alguns atributos que podem ser declarados como imutáveis; por exemplo, usando o atributo de dado membro na linguagem de programação C++. Em alguns casos, um objeto é considerado imutável mesmo que alguns atributos internos utilizados mudem mas o estado do objeto aparece como inalterado de um ponto de vista externo. Por exemplo, um objeto que utilize para armazenar os resultados de computações custosas ainda poderia ser considerado como um objeto imutável. (pt)
  • Незмі́нний об'є́кт (англ. Immutable object) — в об'єктно-орієнтованому програмуванні, об'єкт, стан якого не може бути змінено після створення. На противагу незмінним, стан змінних об'єктів може змінюватись після створення. Об'єкт може бути як незмінним повністю, так і певні його атрибути можуть бути задекларовані незмінними, використовуючи, наприклад, декларацію const мови програмування C++. У деяких випадках, об'єкт вважається незмінним навіть тоді, коли змінюються деякі його внутрішні атрибути, за умови, що зовні його стан виглядає незмінним. Наприклад, об'єкт, який використовує запам'ятовування результатів проміжних обчислень для кешування результатів складних обчислень, може вважатись незмінним. Початковий стан незмінного об'єкта, як правило, визначається , але, він може, також, визнач (uk)
rdfs:label
  • Immutable object (cs)
  • Objeto inmutable (es)
  • Objet immuable (fr)
  • Immutable object (en)
  • イミュータブル (ja)
  • 불변객체 (ko)
  • Objeto imutável (pt)
  • Неизменяемый объект (ru)
  • Незмінний об'єкт (uk)
  • 不可變物件 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:homepage
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License