Как сделать git checkout -q --archive с Python?

Эффективная Java от Джошуа Блоха описывает несколько причин для написания неизменяемых классов:

  • Простота - каждый класс находится только в одном состоянии
  • Thread Safe - потому что состояние не может быть изменено, синхронизация не требуется
  • Запись в неизменяемом стиле может привести к созданию более надежного кода. Представьте, что Струны не были неизменными; Любые методы getter, которые возвращали String, потребовали бы, чтобы реализация создала защитную копию до того, как была возвращена String, иначе клиент может случайно или злонамеренно нарушить это состояние объекта.

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

0
задан Lucas Brito 18 January 2019 в 11:23
поделиться