1

Тема: мутабельний та іммутабельний список

поясніть будь-ласка! що означають ці види списків?

2

Re: мутабельний та іммутабельний список

МУТА́ЦІЯ, ї, жін., спец. — Раптова (стрибкоподібна) зміна чого-небудь.

Префікс "ім-" в деяких словах англійського походження: Ця морфема має тенденцію означати «не» або «протилежне».

Подякували: koala1

3

Re: мутабельний та іммутабельний список

В .NET списки не поділяються на мутабельні і не мутабельні, бо практично всі колекції в стандартній бібліотеці за замовчуванням мутабельні (навіть якщо вони readonly). Мікромякі не змогли зробити нормальну архітектуру в .NET, бо переслідували ціль зкопіювати Java в такий спосіб, щоб його не можна було використати без мікромяких програмних продуктів. Зараз ситуація інша (в кращу сторону), але це завдяки ентузіастам типу Mono.

Цікаво, що в стандартній бібліотеці є такий клас System.ComponentModel.ImmutableObjectAttribute, який практично не використовується, бо нема де. Тобто комусь в голову таки прийшла світла ідея, але йому не дали її повністю реалізувати.

Трохи про архітектуру .NET:
Мікромякі зробили readonly колекції нащадками змінюваних колекцій і в методах Add, Remove кидають exception'и. Має бути навпаки, бо readonly колекція взагалі не має містити цих методів, тоді як змінювана колекція розширює функціонал і тому має бути нащадком від не змінюваної.
Приклади не правильного наслідування в readonly колекціях .NET:

  • System.Collections.ReadOnlyCollectionBase : ICollection

  • System.Collections.ObjectModel.ReadOnlyCollection<T> : IList<T>, ICollection<T>

Подякували: 0xDADA11C7, wander, koala3