Rubyを使用しています。

OOPの設計でとっても悩んでいます。

例えば、
壁にボールを当てる事を考えます。
壁クラス
ボールクラス
投げる人クラスが
あるとします。

壁にボールが当たって跳ね返ってくるのは
どのクラスで実装しますか?
Mediatorクラスを作るべきですか?

あと、
メソッドのaugumentには
他の独自のクラスをとってよいのでしょうか?
メソッドのaugumentには、
operandはおkで、optionはNO
だというのがHeuristicだそうですが、
という事は、他のクラス
例えばこういう書き方をするか知りませんが

method(MyClass object)
のようなメソッドを実装してもいいのですか?
あまりにも汎用性が失われるような気がします。