Делай классы на столько ограниченными, на сколько возможно. Сначала всему что используется только в классе задай private, потом всему что у этого класса наследуется protected и лишь потом ставь public тем методам, которые ты вызываешь извне. При таких ограничениях тебе придется строить наследования, абстрактные классы и интерфейсы. Это позволит сделать архитектуру последовательной и организованной.
Так же все значения, которые не изменяются в процессе работы всегда делай константами, по этой же причине.