Реализация LruCache с объектами

Я изучаю реализацию автономного режима для Android, но для этого мне нужно внедрить систему кэширования. Я читал, и люди предлагают LruCache, и видел пример для изображений здесь Пример LruCache. Теперь я не кэширую изображения, я хотел бы кэшировать объекты. Так, например, у меня есть объект под названием «Клиент», а у клиента есть идентификатор и имя, поэтому, насколько я понимаю, я бы добавил его в кеш как

Id является ключом, а Name - значением.

Мой вопрос в том, что, если у меня есть другой объект под названием «Курсы», мне понадобится отдельный кеш для этого правильно? Потому что, если они находятся в одном и том же кеше, может быть Customer.Id, который совпадает с Courses.Id.

Или как лучше это реализовать? (впервые реализующий кеш, а также новый для Android).


person jedgard    schedule 23.08.2013    source источник


Ответы (1)


Обычно вы создаете кеш для объектов одного типа. Таким образом, у вас будет кеш для Customer и кеш для Courses. Если вы обнаружите, что вам нужно сгруппировать объекты разных типов в один и тот же кеш, то, возможно, вы сможете найти общего предка, который оба подкласса будут использовать в качестве типа кеша. Например, вы можете создать кеш для Animal, а затем в него могут войти и Dog, и Cat. Или вы можете сделать его полностью универсальным и просто использовать Object. Однако будьте осторожны, как вы сказали, вам нужно будет отслеживать, как разные значения идентификатора для каждого объекта ведут себя с другими типами объектов, если вы используете это как свой ключ.

person trevor-e    schedule 23.08.2013