例えば、プログラムでファイルを読みたい時に、
Javaでしたら、FileReaderクラスにFileオブジェクトを与えて、Readerオブジェクトを作り、
Readerオブジェクトのread系のメソッドを使って、ファイルを読みます。
一方で、RubyでしたらFileオブジェクトにread系のメソッドが有るので、Readerオブジェクトを作ることなく、ファイルを読むことが出来ます。

上記の、2つのクラス設計の優劣、または理由をお聞きしたいです。