状況によって変わる以上の回答は無いと思うが。
とりあえずよく悩む点として、APIを設計する時に、ふざけた引数をいくつまで付けて許されるのか?という問題がある。
例えば、CreateFile について皆どう考えてるのか、という問題で。(http://msdn.microsoft.com/ja-jp/library/cc429198.aspx)
僕は生まれたばかりの頃は、CreateFileの引数を見て、頭がおかしい人が設計したAPIなのかと考えていたのだが、今見ると、「CreateFileはI/Oが入ってブロックする可能性があるので、なんらかのイベント用引数を取って非同期に動くようにもするべきである。あとタイムアウトとかも取るべきではないか。もちろん、ディスクアロケートが発生するのはわかっているので、アロケートするバイト数も取るのは当然である。現状では引数が少なすぎる。」とか考えがちである。
こういうようにふざけた引数を増やした時の人々の反応は多分3種類あって、
- 素晴らしい。引数は多ければ多い程よい
- 死ぬべきである。引数が多いのは狂っている
- 引数の意味がよくわからない
ここで、「素晴らしいという人」と「死ぬべきだという人」は一生自転車置場で仲良く暮らしていればよいと思うが、「よくわからない」という人がいる場合は選択肢は無くて、引数を削るしかない。
まあ、だからなんだという話でした。というのは、なんか久し振りに「オブジェクト思考もわからないとかwww」みたいな話を聞いてなんともいえない気分になったので、なんともいえない気分を文章化したかったが失敗したという文章であった。