Есть много раз, когда я не уверен, должен ли какой-то конкретный метод быть закрытым или нет. Например, сейчас я строю класс, который отвечает за создание отчета. Этот класс имеет метод buildReport и несколько методов, которые собирают необходимые данные для buildReport.
// single public method
// uses a set of helper methods
public buildReport()
// helper methods
private avgSurveyTime()
private fetchVendors()
private fetchSendCounts()
private ...
Я обсуждаю, следует ли публиковать эти вспомогательные методы. Единственный метод, который я действительно планирую вызывать на данный момент, - buildReport()
. Однако было бы полезно получить список поставщиков с fetchVendors()
и т.д.
Я вижу две школы мысли об этом: вы всегда можете разоблачить как можно меньше. (В этом случае многие из моих классов будут иметь только один общедоступный метод) ИЛИ вы можете разоблачить все, что может быть полезно пользователю класса.
Есть ли хорошее правило для решения, когда методы должны быть общедоступными/частными?