こっちの方が考え方としては分かり易いか。

ttp://itpro.nikkeibp.co.jp/article/COLUMN/20060607/240196/
>役割とは,「オブジェクトが果たすべき機能」のことで,オブジェクト指向では
>「責務(Responsibility)」と呼ぶ。通常はクラスにメソッドを実装することで,責務を実現する。
>
>オブジェクトに最適な役割を割り当てることは,
>「適切なクラスに適切な責務を配置する」ことに他ならない。

ファイルのopen/write/closeという責務は Fileが負ってくれているのだから、
Dataまで担う必要ありません。