いくつかのことを行うクラスのパブリックメンバー関数を書くとき..
void Level::RunLogic(...);
その関数では、いくつかのプライベート メンバー関数に分割していることに気付きました。パブリックメンバー関数をいくつかの関数に分割しても意味がありません。なぜなら、あることを別のことなしに行うことはできず、ユーザーが何をどの順序で行うかなどを心配したくないからです。むしろ、RunLogic() 関数はこのようなものに見えます...
void Level::RunLogic(...) {
DoFirstThing();
DoSecondThing();
DoThirdThing();
}
DoThing 関数はプライベート メンバー関数です。Code Complete で、Steve McConnel は、クラスに含める関数の数を減らすことを推奨していますが、私はむしろ、すべてのコードを 1 つの関数に入れることはしたくありません。彼の本当の意味についての私の仮定は、クラスはあまり機能的であってはならないということですが、これに関して他のプログラマーがどう考えているのか気になります。
さらに、パブリック メンバー関数で公開する実装の詳細を徐々に減らし、ほとんどの作業を小さなプライベート メンバー関数に移す方向に進んでいます。明らかに、これによりより多くの機能が作成されます...しかし、問題はそこにあります。