Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
21 / 23 / 9
Регистрация: 26.07.2013
Сообщений: 109
1

Порекомендуйте правильный паттерн

08.06.2016, 14:22. Показов 753. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Друзья, привет.

Требуется помощь.
Опишу задачу:
Есть некоторое количество классов, которые получают данные. Не сказать, что загрузка очень длительная, но хочется загрузить один раз и больше этого не делать. Допустим при реализации постраничного вывода, нужно делать запрос при каждом переходе со страницы на страницу.

Я пришёл к тому, что нужно реализовать контейнер, который будет кэшировать в себе объекты, в таком случае, нужно будет запрашивать данные страницы только один раз, а в последствии доставать их из контейнера.

Проблема осложняется тем, что все классы, которые получают данные, должны хранить их на протяжении всего жизненного цикла приложения. (может, я ошибаюсь, и это излишние издержки, скажите об этом, если это так).

В данный момент в голову пришла такая вещь:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    class ObjectContainer<T>
    {
        private static ObjectContainer<T> _instance;
 
        private ObjectContainer()
        {
 
        }
 
        public static ObjectContainer<T> GetInstance()
        {
            if (_instance == null)
                return new ObjectContainer<T>();
            else
                return _instance;
        }
 
        public void SetData(string key, IEnumerable<T> data)
        {
        }
    }
Это неполное описание класса, только его часть.
Получается, что для каждого класса с данными можно создать свой синглтон, который будет содержать объекты, добавлять в себя новые и выдавать запрашиваемые.

В общем, я не так хорош в паттернах, подскажите, пожалуйста, что использовать? Может быть, (я уверен) есть лучшие варианты реализации?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2016, 14:22
Ответы с готовыми решениями:

Почему паттерн абстрактная фабрика - паттерн уровня объектов, если в нём могут быть статические отношения?
Взято из Шевчук А., Охрименко Д., Касьянов А. Design Patterns via C#. Приемы...

Какой наиболее правильный паттерн при работе с SQLite
Что есть: Entity Framework - набор классов для работы с базой данных WPF - забинденные Listview...

Правильный или не правильный ответ
Я создал основу для теста, а дальше по заданию вообще продвинуться не могу, помогите чем сможите!...

Indy: программа не получает правильный ответ от сервера, но сниффер показывает правильный ответ
Всем привет. Моя программа должна сделать гет запрос на определенный сайт. Я включаю программу и...

2
3462 / 2473 / 695
Регистрация: 02.08.2011
Сообщений: 6,704
08.06.2016, 14:39 2
вроде как тривиальное решение, имхо:
1. Для Сущности пишете свой Repository (просто интерфейс с CRUD). Который будет доставать данные из локального хранилища (кэша).
2. Пишите Decorator для вашего Repository. Decorator достает данные из кэша, если нет, то достает данные из основного хранилища, затем обновляет кэш.
Повторяете это для всех сущностей.
3. Собираете все декораторы в Facade.
4. А Facade - это Singletone.

Профит. Я бы так делал.
1
21 / 23 / 9
Регистрация: 26.07.2013
Сообщений: 109
08.06.2016, 14:45  [ТС] 3
Спасибо. Попробую сделать, как ты сказал, ещё раз спасибо!
0
08.06.2016, 14:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2016, 14:45
Помогаю со студенческими работами здесь

Порекомендуйте БП !!!
Привет всем, нужна помощь. Цена примерно одинакова. ...

Порекомендуйте
Порекомендуйте программу для создания инсталлиционных пакетов кроме Setup factory.

Порекомендуйте процессор
С 64-битной архетиктурой, до 100$, с fm1 сокетом, для игр Добавлено через 19 минут раньше стоял...

Порекомендуйте ленточку
Не раз встречал на различных сайтах ленту ссылок на социальные сети, состоящую из аватаров этих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru