Я бы не стал беспокоиться о том, чтобы предпринять явные шаги для того, чтобы b()
и c()
вызывались только по a()
.
Имеет смысл беспокоиться о публичных методах, которые вы предоставляете в классе, поскольку вы предоставляете интерфейс с внешним миром, потенциально людям, которые не имеют доступа к исходному коду ваш класс (или, по крайней мере, не хотите беспокоиться о деталях реализации вашего класса).
Внутри вашего класса, тем не менее, вы можете свободно выбирать любые приватные методы по любым причинам. Повторное использование кода является одной из причин создания нового частного метода, но создание нескольких меньших одноразовых методов для разбиения большего также является вполне допустимой (и распространенной) причиной.
Кроме того, для будущих сопровождающих вашего кода простой комментарий, такой как:
//this method should only be called by a()
private void b()
{
...
}
будет гораздо более понятным, чем большинство других решений, представленных здесь.