Долго следовал советам о том, что static — это неправильно.
Но с опытом всё больше хочется сделать хранилище данных слоя бизнес-логики как static — с доступом из любого места приложения.
Хотелось-бы услышать аргументированные личным опытом мнения — как лучше делать и, главное, почему ?
Поясню почему мне хочется сделать доступ отовсюду.
На первоначальном этапе разницы нет, однако, со временем, при требованиях "улучшить функционал путем добавления новой фичи быстро" часто происходит такая ситуация:
Новая фича должна реализовываться в месте старого функционала и требует доступ или даже работу с иным набором данных.
В результате происходит "refuctoring" с пробросом новых данных, событий и делегатов через несколько слоев логики только для того что-бы это стало доступно для реализации новой фичи.
При этом физическая сущность данных — одна и, соответственно, более одного рабочего экземпляра объекта-хранилища данных — не будет.