У вас подход к разработке вывернут наизнанку. Цепочка разработки такая: требования->архитектура->реализация. Вы же из реализации пытаетесь выяснить как «правильно». Это принципиально невозможно. Правильно так, как удовлетворяет требованиям. А требований нет. Поэтому сначала нужно определиться с требованиями к интерфейсу класса, а потом уже делать реализацию (ну а приватный методы — это ни что иное как способ реализации интерфейса).