Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
18.06.2013, 11:13
|
|||
---|---|---|---|
Вопрос по паттернам |
|||
#18+
Есть класс-контейнер, в котором хранятся данные в BindingList и методы по "управлению" этим списком. Требуется получить доступ к этим данным (получение, управление) из нескольких других классов (формы). Какой паттерн это "описывает"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2013, 11:44
|
|||
---|---|---|---|
Вопрос по паттернам |
|||
#18+
saxix, Это описывает анти паттерн "глобальная переменная". Смотря что нужно. Если нужен один экземпляр этого класса во всех местах, то получается Singleton. Можно передавать ссылку на этот класс в другие классы. Если расширить это понятие, то получим "Внедрение зависимости" - Dependency injection. Она может быть через конструктор/свойство/метод. При этом, если те другие классы будут иметь параметр не конкретного типа, а базового или ещё лучше интерфейса, то можно будет динамически подсовывать любую нужную реализацию. Таким образом получим ещё и (возможно) лучшую тестируемость: можно будет легко "мокать" в юнит-тестах любые классы. А если применить ServiceLocator, а лучше IoC-контейнер, то избавимся от передачи прямых зависимостей по всему коду. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.06.2013, 12:08
|
|||
---|---|---|---|
Вопрос по паттернам |
|||
#18+
saxixЕсть класс-контейнер, в котором хранятся данные в BindingList и методы по "управлению" этим списком. Требуется получить доступ к этим данным (получение, управление) из нескольких других классов (формы). Какой паттерн это "описывает"? Registry ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&tablet=1&tid=1404484]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 446ms |
0 / 0 |