カプセル化は壊してないだろ
よくわからん言い方やめろ
コンストラクタで渡そうが保持しようが
fooのprivateにはアクセスできん

あと、コンストラクタで保持するのが良くない理由は
コピーしてんのか、継承してんのかわからん
コード嫁ってのはなしな

混在してたら可読性下がる