Приватные по умолчанию должны быть и свойства, и методы.
Публичные свойства можно оставить в DTO. Так как в DTO ничего больше и не будет, просто голая структура без логики.
В остальных случаях всё должно быть приватным по умолчанию, и вот почему.
-
Если этот метод приватный, значит он нигде не используется.
-
Если он нигде не используется, значит мы можем не думать о том что он может быть где-то вызван за пределами класса.
-
Если мы можем не думать о вызовах метода за пределами класса, то мы можем сосредоточиться только на коде этого класса.
-
Работая в пределах класса с приватными методами и свойствами, мы игнорируем весь окружающий мир.
-
Мы получаем полную свободу действий и максимальную концентрацию, так как мозг не забит беспокойством о других классах.
-
С публичными методами и свойствами мы должны всё время оглядываться, чтобы что-то снаружи не сломать.
-
С приватными свойствами и методами мы можем делать что угодно, переименовывать, удалять, добавлять как угодно. Это в десятки раз облегчает любой рефакторинг.
Именно поэтому и нужно делать всё приватным по умолчанию, а открывать только по необходимости.