Почему говорится, что нам не нужно клонировать неизменный класс? - PullRequest
3 голосов
/ 23 сентября 2019

Неизменяемый класс - это просто класс, экземпляры которого нельзя изменить.Неизменяемый класс хорош для целей кэширования и безопасен для потоков.Неизменяемые объекты - это экземпляры, состояние которых не изменяется после их инициирования.

Принимая во внимание, что клонирование объекта относится к созданию точной копии объекта.Он создает новый экземпляр класса текущего объекта и инициализирует все его поля точно содержимым соответствующих полей этого объекта.

Теперь возникает вопрос, почему говорят, что нам не нужноклонировать неизменяемый класс?

Это потому, что создание точных копий данных, которые уже используются в целях кэширования, увеличит мусор, создаваемый в системе, и потенциально замедлит работу приложения. Или какой-то другой соответствующий ответ лежит внутри?

Ответы [ 2 ]

5 голосов
/ 23 сентября 2019

Обычно вы создаете копии (клоны) объекта, если хотите внести изменения в состояние копии без изменения состояния исходного объекта.

Поскольку состояние объектов неизменяемых классов не может быть изменено, вы можете использовать исходный объект без какого-либо риска изменения его состояния.

3 голосов
/ 23 сентября 2019

Если у вас уже есть объект неизменяемого класса, нет смысла иметь и второй, функционально идентичный класс, вы можете просто использовать один экземпляр везде.Также, если бы вы клонировали его, вы бы просто использовали вдвое больше памяти без дополнительного усиления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...