ФОНОМКак можно обеспечить согласованность между множественными экземплярами модели объекта
Это проблема, которую я продолжаю возвращаться как я разработка Android приложения. Скажем, мое приложение позволяет пользователям «следить» за телешоу. Моя TVShow
модель класса выглядит следующим образом:
public class TVShow {
String title;
String[] show_cast;
boolean currently_airing = true;
boolean following = false;
long nextEpisodeTime;
String genre;
}
У меня есть база данных SQL, которая хранит сотни телевизионных шоу. Это полезно, потому что я могу использовать подробные запросы для выбора шоу на основе конкретной информации. Проблема, которую я получаю, - это когда у меня есть несколько экземпляров TVShow
, которые представляют одно и то же шоу.
Пример
Скажем, у меня есть ТВ-шоу «The Walking Dead» в моей базе данных и создать TVShow
объект из запроса SQL. Этот экземпляр объекта будет называться TVShow#1
. Я решил «следить» за этим шоу, поэтому я установил TVShow#1.following = true
. Где-то еще в моем приложении я запрашиваю список показов, которые в настоящее время транслируются, в которые входит «The Walking Dead». Новый экземпляр TVShow
будет создан для этого списка TVShow#2
. Проблема здесь в том, что у меня есть два объекта TVShow
, TVShow#1
и TVShow#2
, которые представляют «The Walking Dead», но они имеют разные значения для following
. Это вызовет проблемы во всей логике моего приложения, потому что между всеми TVShow
экземплярами, которые представляют одно и то же телешоу, не существует согласованности.
MY BAD РЕШЕНИЕ
Увеличить это кучу экземпляров объектов и гораздо более сложных полей и логики, и это положение я в настоящее время. Я смягчила это путем загрузки всех данных SQL в память (обычно ArrayList
или HashMap
), когда приложение запускается и запрашивает только эти объекты Java вместо базы данных SQL. Это решение неэффективно и неудобно, где SQL-запросы действительно могут помочь. Надеюсь, мои примеры не слишком запутывают. Если я смогу уточнить или предоставить дополнительную информацию, я был бы счастлив. Пожалуйста, дайте мне знать, есть ли что-то лучшее, что я могу сделать, чтобы обеспечить согласованность между несколькими экземплярами одного и того же объекта модели.
Как сохранить только экземпляр в hashmap вместо всех данных? – Erik