どのような状況で、参照とボックスを使用したいのですか？
ボックスではなく参照を使用する場合がある状況は次のとおりです。

 - パフォーマンスを向上させることができるメモリ内でデータの移動を避けてください。
 - 所有権を転送せずに、コードのさまざまな部分で同じデータにアクセスまたは変更します。
 - データ全体を関数に渡すのではなく、借りたデータで動作する関数を実装します。

参照ではなくボックスを使用したい場合は次のとおりです。

 - データ構造が大きく、データをコピーせずに所有権を転送する場合。
 - リンクされたリストやツリーなどの再帰データ構造を作成する必要がある場合。
 - オブジェクトを保持するためにヒープに割り当てられたサイズのコンテナが必要な、特性オブジェクト（動的に発送されたタイプ）を使用する場合。

要約すると、所有権を取得せずに一時的にデータにアクセスまたは変更する場合は、参照を使用し、ヒープ割り当て、所有権転送、または動的ディスパッチが必要な場合はボックスを使用します。