Вопросы с тегом «immutability»

23
Если неизменные объекты хороши, почему люди продолжают создавать изменяемые объекты? [закрыто]
Если неизменяемые объекты¹ хороши, просты и дают преимущества в параллельном программировании, почему программисты продолжают создавать изменяемые объекты2? У меня есть четыре года опыта в программировании на 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-коллекции, я был очень удивлен, увидев, что интерфейс коллекции содержит методы, объявленные как необязательные. Ожидается, что разработчик выдаст исключение UnsupportedOperationException, если оно не поддерживается. Это сразу показалось мне плохим выбором дизайна API. Прочитав большую часть превосходной книги Джошуа Блоха «Эффективная Ява», а затем …

5
Когда НЕЛЬЗЯ использовать актеров в акке / эрланге?
Я работаю с akka уже 7-8 месяцев ежедневно. Когда я начинал, я работал над приложениями и замечал, что актеры будут использоваться в любом месте внутри системы акторов для связи между большинством объектов. Я сделал то же самое - раскрутил другого актера за х / у / з. Мне кажется, что …

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

2
Что Алан Кей имел в виду под «заданием» в «Ранней истории Smalltalk»?
Я читал «Раннюю историю Smalltalk», и есть несколько упоминаний о «назначении», которые заставляют меня усомниться в моем понимании его значения: Хотя ООП исходило из многих мотивов, два были центральными. Крупномасштабная задача заключалась в том, чтобы найти лучшую модульную схему для сложных систем, связанных с сокрытием деталей, а мелкомасштабная - найти …

7
Полная неизменность и объектно-ориентированное программирование
В большинстве языков ООП объекты обычно изменяемы с ограниченным набором исключений (например, кортежи и строки в Python). В большинстве функциональных языков данные неизменны. Как изменяемые, так и неизменяемые объекты имеют целый ряд собственных преимуществ и недостатков. Существуют языки, которые пытаются объединить обе концепции, например, scala, где у вас есть (явно …

5
Устраняет ли неизменность необходимость блокировок при многопроцессорном программировании?
Часть 1 Очевидно, что неизменность сводит к минимуму необходимость блокировок в многопроцессорном программировании, но устраняет ли она эту потребность, или есть случаи, когда одной неизменности недостаточно? Мне кажется, что вы можете только отложить обработку и инкапсулировать состояние настолько задолго до того, как большинству программ придется что-то делать (обновить хранилище данных, …

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

5
Не объявляйте интерфейсы для неизменяемых объектов
Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 6 лет назад . Не объявляйте интерфейсы для неизменяемых объектов [РЕДАКТИРОВАТЬ] Где рассматриваемые объекты представляют объекты передачи данных (DTO) или простые старые данные (POD) Это разумное руководство? До сих пор я часто …
27 c#  immutability 

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

8
Неизменность в дизайне баз данных
Одним из элементов «Эффективной Java» Джошуа Блоха является представление о том, что классы должны обеспечивать как можно меньшую мутацию экземпляров, а желательно - вообще. Часто данные объекта сохраняются в базе данных некоторой формы. Это привело меня к мысли об идее неизменности в базе данных, особенно для тех таблиц, которые представляют …


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.