В тот момент, когда вы начнете сотрудничать с другими людьми над кодом, вы по достоинству оцените ясность и безопасность сохранения конфиденциальности ваших личных данных.
Скажем, вы разработали класс, вращающий изображение.Конструктор берет объект изображения, и есть метод "поворота", который будет поворачивать изображение на требуемое количество градусов и возвращать его.
Во время вращения вы сохраняете переменные-члены с состоянием изображения, например, карту пикселей в самом изображении.
Ваши коллеги начинают использовать класс, а вы 'Ответственный за поддержание его работы.Через несколько месяцев кто-то указывает вам технику, которая выполняет манипуляции более эффективно, не сохраняя карту пикселей.
Вы минимизировали открытый интерфейс, сохранив приватность своих рядовых?
Если вы это сделали, вы можете поменять внутреннюю реализацию на другую технику, и людям, которые зависели от вашего кода, не нужно будет вносить какие-либо изменения.
Если вы этого не сделали,вы не знаете, от чего зависит состояние вашего коллеги, и вы не можете безопасно вносить какие-либо изменения, не связавшись со всеми вашими коллегами и не попросив их изменить свой код или не изменив их код.
Это проблема, когда ты работаешь один?Возможно, нет.Но это проблема, когда у вас есть работодатель или когда вы хотите открыть для себя новую классную библиотеку с открытым исходным кодом, которой вы так гордитесь.