私はここで少し明快さを探しています。私のプロジェクトの 1 つで、さまざまな幾何学的形状を保持するコンテナーを作成しました。私のインターフェースは次のとおりです。
Container::AddTriangle(Point, Point, Point);
Container::AddSquare(Point, Point, Point, Point);
などなど。必要なデータがあることを確認するためにコンパイル時にチェックを行うため、このインターフェイスが気に入っています。しかし、私のチームとの話し合いで、誰かが代わりにこのインターフェースを提案しました:
enum SHAPE { Triangle, Square };
Container::AddShape( std::vector<Point>, SHAPE );
多くの関数ではなく 1 つの関数のみを使用することで、よりクリーンなコードを提供するという議論があります。私は確かに最初の方法を好みますが、2 番目の方法に反対する意見はまったくありません。誰かが以前にこの選択に遭遇したことがありますか? どちらの選択肢が他の選択肢よりも優れていますか (または少なくとも伝統的に好まれていますか)?
注:誰かが提案する前に:
Container::Add( Shape )
これは私の問題に対する適切な解決策ではないことをお知らせしたいと思います。約束します。