>>811
1. そもそも何故Hogeに渡したFooインスタンスを、Hoge以外の場所で使いまわすのが前提なのか
2. 仮にFooを色々な場所で使いまわすのが前提なら、最初からimmutableなオブジェクトとして設計するなり、
 Fooインスタンス自身のライフサイクルを確認できる手段を提供して、そのことをドキュメントに明記すべき。

どちらにせよ、あらかじめ保持しようが呼び出しのパラメータとして渡そうが、2の場合なら
Hoge側でチェックが必要なのは変わらん。
FooがHogeの機能の一部であるなら、コンポジションとして委譲する方法がある、というだけの話。

>>810の言う通りで、自分でわざわざバグを作りこんでおいて「コンポジションを使うのは三流」とか
意味が分からん。