Когда я пишу функцию класса за общественный член, который делает несколько вещей, как ..Ломая функции-члены в множество частных функций членов
void Level::RunLogic(...);
В этой функции я считаю себя, разделив ее на несколько частных функций членов , Нет смысла разбивать функцию публичного участника на несколько функций, потому что вы не будете делать одно без другого, и я не хочу, чтобы пользователь беспокоился о том, что в каком порядке и т. Д. Скорее, функция RunLogic() что-то вроде этого ...
void Level::RunLogic(...) {
DoFirstThing();
DoSecondThing();
DoThirdThing();
}
С функциями DoThing, являющимися частными функциями-членами. В Code Complete Стив МакКоннелл рекомендует сократить количество функций, которые у вас есть в классе, но я бы предпочел не просто перевести весь этот код в одну функцию. Мое предположение о его истинном значении заключается в том, что класс не должен обладать слишком большой функциональностью, но мне просто интересно, что думают другие программисты относительно этого.
Кроме того, я продвигался к тому, чтобы подвергать все меньше и меньше деталям реализации в моих публичных функциях-членах и переносить большую часть работы на небольшие частные функции-члены. Очевидно, это создает больше функций ... но в этом и заключается вопрос.
На самом деле, я нахожу ваш первый пример более читаемым. Меньше усилий при чтении цикла for. Четыре оператора в строке, которыми я могу управлять. –