Неизменяемые объекты могут быть полезны в многопоточных приложениях. Несколько потоков могут воздействовать на данные, представленные неизменяемыми объектами, не заботясь об изменении данных другими потоками. Поэтому неизменяемые объекты считаются более потокобезопасными, чем изменяемые объекты.
В чем смысл неизменяемых объектов?
Максимальное использование неизменяемых объектов широко признано надежной стратегией создания простого и надежного кода. Неизменяемые объекты особенно полезны в параллельных приложениях. Поскольку они не могут изменить состояние, они не могут быть повреждены вмешательством потока или обнаружены в несогласованном состоянии.
Какие объекты следует называть неизменяемыми?
Неизменяемые объекты - это просто объекты, состояние которых (данные объекта) не может измениться после построения. Примеры неизменяемых объектов из JDK включают String и Integer. Неизменяемые объекты значительно упрощают вашу программу, поскольку: их легко создавать, тестировать и использовать.
Как реализовать неизменяемый объект?
Чтобы создать неизменяемый объект, вам нужно следовать нескольким простым правилам:
- Не добавляйте метод установки.
- Объявить все поля окончательными и закрытыми.
- Если поле является изменяемым объектом, создайте его защитные копии для методов получения.
- Если изменяемый объект, переданный конструктору, должен быть назначен полю, создайте его защитную копию.
Где мыиспользовать неизменяемый класс в Java?
Неизменяемые классы упрощают параллельное программирование. Неизменяемые классы гарантируют, что значения не изменятся в середине операции без использования синхронизированных блоков. Избегая блоков синхронизации, вы избегаете взаимоблокировок.