Показать сообщение отдельно
Старый 10.04.2012, 14:11
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 1  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
По умолчанию Глобальный доступ к объекту без синглотона или ДИ

Допустим есть такой класс ResourseManager, который абстрагирует доступ приложения к разному типу данных (картинки, звуки, тескта и т.д.).
Все приложение получает данные именно через него. Что бы дать всему приложению доступ на него существует несколько разных способов:
1 - Синглтон. Думаю что реализацию и возможные проблемы вы уже знаете.
2 - ДИ. Вообщем для данной проблемы не плохой подход, однако не хочется прикручивать ДИ движок к приложению, так как это преопределит его архитектуру не так как мне этого хочется.
3 - Впихнуть ResourseManager в основную модельку и через нее все получать. То же вроде бы не плохой вариант, однако мне кажется идеологически не правельным засовывать ResourseManager в модель, так как хотелось бы что бы у представления была непосредственная ссылка на него.
4 - Можно кидать евент, в который передать каллбек. Евент будет ловится медиатором, и обработчике будет вызыватся коллбек, как только данные будут загружатся. Вообщем этот вариант конечно полностью отгораживает нас от ссылки на ресоурс менеджер, но тогда каждое обращение к ResourseManager выльется в несколько строчек. Да и вообще мне кажется это не правильным, так как код будет не приятным для обслуживания, дебага и вообще это просто не правильно

Вообщем посоветуйте плиз, как реализовать функционал общего доступа, что бы он был как можно более гибок, и как можно менее затратен в плане написания кода каждого обращения к нему.

Зарание благодарен.
__________________
ranga