Всегда ли нужно стремиться к неизменяемости объектов? Делал лабораторную по ооп на c#, сначала сделал без неизменяемости: для полей, которые нужно изменять оставил сеттер, для остальных - только геттер. Но преподаватель попросил сделать объекты неизменяемыми и сделать это с помощью билдера. Сделал, но код стал менее понятным, и тесты писать стало труднее, так как при попытке изменить объект создавался новый и приходилось искать этот новый объект, чтобы продолжить работу с ним. Ну и сам вопрос: в каких случаях лучше делать объекты неизменяемыми, а в каких можно обойтись ограничением некоторых полей?
Зависит от проекта и поставленной цели, сходу сказать, когда в 100% случаев нужен неизменяемый объект, а когда изменяемый - сложно.
---
Как правило (static) final поля можно делать и публичными - они не изменяемые, поэтому геттер для них - слишком, а приватным полям, наоборот, прикручивают и геттер, и сеттер
Зависит от проекта и поставленной цели, сходу сказать, когда в 100% случаев нужен неизменяемый объект, а когда изменяемый - сложно.
---
Как правило (static) final поля можно делать и публичными - они не изменяемые, поэтому геттер для них - слишком, а приватным полям, наоборот, прикручивают и геттер, и сеттер