Мой ответ/предложение должен постараться не ожидать слишком много от скорости USB. Я думаю, что Вы неправильно поняли то, для чего подкачка. Это не ускорит Вашу систему для хранения подкачки на USB начиная с доступа к данным из выполнений USB ужасно медленной по сравнению с доступом к нему от HD. Не забывайте, что большинство системных данных сохраняется в RAM, когда Вы запускаете, ОС из памяти придерживаются, так выполнение подкачки от USB делает USB<-> передача данных RAM еще медленнее.
Ubuntu будет всегда работать намного медленнее от карты с интерфейсом USB, чем от жесткого диска, создавание привычки подкачки вынуждает Ubuntu прекратить использовать RAM.
Вот почему контейнеры DI управляют жизненным циклом. Пусть Playerlist будет одноэлементным с точки зрения жизненного цикла контейнера. Дает вам полную возможность тестирования компонентов и позволяет контейнеру (не вам) испачкать руки.
Идея внедрения зависимостей заключается в том, как указано в имени, для внедрения зависимостей . Таким образом, любой объект, который должен знать о списке игроков, будет внедрен вместе с ним. Обычно имеет смысл максимально широко использовать внедрение зависимостей перед переключением на поиск зависимостей или какой-либо другой механизм. Это также позволит расширить игру позже, чтобы иметь разные списки игроков для разных уровней или любое другое расширение, о котором вы можете подумать.
Если вам нужен PlayerList вне Game, возможно, Game не подходит для этого класса? Если какой-либо другой объект нуждается в PlayerList, либо им также необходимо внедрить List, либо, может быть, вам следует переместить список в этот класс вместо класса Game.
Если у вас разные времена жизни для Game, PlayerList и других классов, возможно, также подумайте об использовании Factory для их группировки. Подробнее читайте в статье в блоге Google Testing .