関数が入力としてテキスト ファイルの名前を受け取る場合、代わりにファイル オブジェクトを受け取るようにリファクタリングできます (私はそれを「ストリーム」と呼んでいます。より適切な言葉はありますか?)。利点は明らかです。ストリームを引数として取る関数は次のとおりです。
- テストのためだけに一時ファイルを作成する必要がないため、単体テストを作成するのがはるかに簡単になります。
- ファイルの内容を変数にすでに持っている状況で使用できるため、より柔軟です。
ストリームに不利な点はありますか? それとも、常に関数をファイル名引数からストリーム引数にリファクタリングする必要がありますか (もちろん、ファイルがテキストのみであると仮定します)。