понимание частных сеттеров
Я не понимаю необходимости иметь частные сеттеры, которые начинались с C # 2.
Для меня метод сеттера позволяет пользователю устанавливать некоторые переменные в этом классе. При этом мы не будем выставлять переменные непосредственно пользователям. Вместо этого мы позволяем им сделать это с помощью этого метода открытого сеттера.
Это для меня использует «инкапсуляция». Существуют некоторые аргументы, утверждающие, что частные сеттеры позволят вам применять инкапсуляцию.
Разве я не использую инкапсуляцию с использованием общедоступных методов установки? Зачем нам нужны частные сеттеры?
В чем разница между неизменным классом и классом с закрытыми сеттерами?