Опция B не увеличивает использование памяти, поскольку у вас будет только один объект ArrayList
(все объекты, которые его используют, просто содержат простую ссылку, а не копию). Объекты, которые используют ArrayList
, могут также хранить эту ссылку как переменную экземпляра, вместо того, чтобы запрашивать ее у класса менеджера каждый раз, когда это необходимо.
Я где-то читал, что доступ к переменным экземпляра немного быстрее, чем доступ к переменным класса (static
), но у меня нет ссылки на источник.
Разница в производительности вряд ли будет значимой. Тем не менее, вариант B обеспечивает лучшую инкапсуляцию.