Запитання з тегом «immutability»

23
Якщо непорушні предмети хороші, чому люди продовжують створювати змінні предмети? [зачинено]
Якщо незмінні об'єкти¹ хороші, прості та пропонують переваги при одночасному програмуванні, чому програмісти продовжують створювати об'єкти, що змінюються²? У мене є чотирирічний досвід роботи в програмуванні Java, і, як я це бачу, перше, що люди роблять після створення класу, - це генерувати геттери та сетери в IDE (таким чином роблячи …

6
Чому Java 8 не включає незмінні колекції?
Команда Java здійснила велику роботу, усуваючи бар'єри для функціонального програмування на Java 8. Зокрема, зміни в колекціях java.util виконують велику роботу з ланцюжка перетворень на дуже швидкі потокові операції. Зважаючи на те, наскільки добре вони виконали додавання першокласних функцій та функціональних методів у колекції, чому вони повністю не змогли надати …

6
Чи пошкоджує незмінність ефективність роботи JavaScript?
Здається, останнім часом в JavaScript спостерігається тенденція до трактування структур даних як до незмінних. Наприклад, якщо вам потрібно змінити одну властивість об'єкта, краще просто створити цілий новий об’єкт з новою властивістю і просто скопіювати всі інші властивості зі старого об'єкта, а старий об’єкт нехай збирається сміттям. (Це я все-таки розумію.) …

11
Чому String незмінний на Java?
Я не міг зрозуміти причину цього. Я завжди використовую клас String, як і інші розробники, але коли я змінюю його значення, створюється новий екземпляр String. Що може бути причиною незмінності класу String на Java? Я знаю, що є деякі альтернативи, такі як StringBuffer або StringBuilder. Це просто цікавість.

4
Чому колекції Java реалізовувались за допомогою «необов’язкових методів» в інтерфейсі?
Під час моєї першої реалізації, що розширює рамки колекції Java, я був дуже здивований, побачивши, що інтерфейс колекції містить методи, оголошені як необов'язкові. Очікується, що реалізатор викине UnsupportedOperationExceptions, якщо він не підтримується. Це відразу вразило мене як поганий вибір дизайну API. Прочитавши велику частину чудової книги "Ефективна Java" Джошуа Блоха …

5
Коли НЕ добре використовувати акторів в акка / ерланг?
Я працюю з аккою вже 7-8 місяців щодня. Коли я починав, я працював над додатками і зауважував би, що актори використовуються в основному де-небудь всередині акторської системи для спілкування між більшістю об'єктів. Так що я зробив те саме - закрутив іншого актора на х / у / з. Мені здається, …

9
Невже незмінна цінність, коли немає одночасності?
Здається, що безпека ниток завжди / часто згадується як головна перевага використання незмінних типів і особливо колекцій. У мене є ситуація, коли я хотів би переконатися, що метод не змінює словник рядків (які незмінні в C #). Я хотів би якомога більше обмежувати речі. Однак я не впевнений, чи варто …

2
Що мав на увазі Алан Кей під „завданням” у „Ранній історії малих розмов”?
Я читав "Ранню історію Малого розмови", і є кілька згадок про "завдання", які змушують мене поставити під сумнів своє розуміння його значення: Хоча ООП виходив із багатьох мотивів, два були центральними. Великий масштаб полягав у тому, щоб знайти кращу модульну схему для складних систем, що передбачає приховування деталей, а маленький …

7
Повна незмінність та об'єктно-орієнтоване програмування
У більшості мов OOP об'єкти, як правило, змінюються з обмеженим набором винятків (наприклад, кортежі та рядки в python). У більшості функціональних мов дані незмінні. Як змінні, так і непорушні об'єкти приносять цілий список своїх переваг і недоліків. Є мови, які намагаються одружитися з обома поняттями, наприклад скала, де у вас …

5
Чи повністю виключає незмінність необхідності блокування в багатопроцесорному програмуванні?
Частина 1 Очевидно, що незмінність мінімізує потребу в блокуваннях в багатопроцесорному програмуванні, але чи усуває це потреба, чи є випадки, коли однієї незмінюваності недостатньо? Мені здається, ви можете лише відкладати обробку та інкапсулювати стан так довго, перш ніж більшість програм насправді повинні щось зробити (оновити сховище даних, створити звіт, викинути …

7
Різниця між незмінним і const
Я часто бачив терміни immutableі constкористувався взаємозамінно. Однак, з мого (невеликого) досвіду, вони сильно відрізняються в «контракті», який вони складають у коді: Immutable укладає договір про те, що цей об'єкт не змінюватиметься взагалі (наприклад, кортежі Python, рядки Java). Const укладає договір про те, що в межах цієї змінної він не …

5
Не оголошуйте інтерфейси для незмінних об'єктів
Це запитання було перенесено з коду обміну стека коду, оскільки на нього можна відповісти на програмі Exchange стека. Мігрували 6 років тому . Не оголошуйте інтерфейси для незмінних об'єктів [EDIT] Якщо об'єкти, про які йдеться, представляють об'єкти передачі даних (DTO) або звичайні старі дані (POD) Це розумна настанова? До цього …
27 c#  immutability 

7
Чи є якийсь практичний спосіб, щоб пов'язана структура вузла була непорушною?
Я вирішив написати список, пов'язаний окремо, і склався план зробити внутрішню пов'язану структуру вузла незмінною. Хоча я наткнувся на корч Скажіть, у мене є такі пов'язані вузли (з попередніх addоперацій): 1 -> 2 -> 3 -> 4 і сказати, що я хочу додати 5. Для цього, оскільки вузол 4є незмінним, …

8
Сприяння незмінності в дизайні баз даних
Один із пунктів Ефективної Java Джошуа Блоха - це поняття про те, що класи повинні дозволяти мутації екземплярів якнайменше, а краще взагалі. Часто дані об'єкта зберігаються у базі даних певної форми. Це спонукало мене до думки про ідею незмінності в базі даних, особливо для тих таблиць, які представляють собою єдину …


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.