Приватные по умолчанию должны быть и свойства, и методы.

Публичные свойства можно оставить в DTO. Так как в DTO ничего больше и не будет, просто голая структура без логики.

В остальных случаях всё должно быть приватным по умолчанию, и вот почему.

  1. Если этот метод приватный, значит он нигде не используется.

  2. Если он нигде не используется, значит мы можем не думать о том что он может быть где-то вызван за пределами класса.

  3. Если мы можем не думать о вызовах метода за пределами класса, то мы можем сосредоточиться только на коде этого класса.

  4. Работая в пределах класса с приватными методами и свойствами, мы игнорируем весь окружающий мир.

  5. Мы получаем полную свободу действий и максимальную концентрацию, так как мозг не забит беспокойством о других классах.

  6. С публичными методами и свойствами мы должны всё время оглядываться, чтобы что-то снаружи не сломать.

  7. С приватными свойствами и методами мы можем делать что угодно, переименовывать, удалять, добавлять как угодно. Это в десятки раз облегчает любой рефакторинг.

Именно поэтому и нужно делать всё приватным по умолчанию, а открывать только по необходимости.