2015-03-15 7 views
0

Я хочу создать класс фильма. Теперь у фильма будет назначено несколько жанров. Ex. В фильме «Мстители» есть жанры: «Экшн», «Приключения», «Sci-Fi». Теперь мое приложение поддерживает список всех жанров, из которых подмножество может быть присвоено фильму.Моделирование объекта с имуществом коллекции

В моем существующем дизайне модели есть объект Movie с коллекцией всего списка жанров. Класс Genre просто имеет свойство IsSelected, чтобы помочь идентифицировать подмножество жанров, которые были назначены для определенного фильма. Это дает преимущество, так как при создании пользовательского интерфейса для создания нового фильма я показываю все доступные жанры, из которых пользователь выбирает/проверяет те, которые применимы к фильму.

public class Movie 
{ 
    public ObservableCollection<Genre> MovieGenres { get; set; } 
} 

Однако я считаю это одним из недостатков этого подхода. Предположим, у меня есть около 25 списков жанров и около 500 фильмов, тогда создается около 25 x 500 жанровых объектов.

Считаете ли вы, что этого следует избегать?

Есть ли какой-либо лучший подход к связыванию жанров с объектом фильма, который уменьшит необходимость создания так много объектов жанра, а также даст одинаковое преимущество в пользовательском интерфейсе?

Или есть ли лучший подход для разработки моего пользовательского интерфейса, который я могу использовать из-за дизайна модели?

(я не являюсь с помощью любого инструмента ORM, ни планирует использовать в будущем)

+1

Я бы только сохранил жанры, назначенные этому фильму на объект фильма, и имел отдельную функциональность для добавления новых жанров. Подумайте о системе SE для добавления тегов, например. Если вы действительно хотите поддерживать «показать все жанры и выбирать/отменять выбор элементов», тогда у меня будет один список всех генераторов и синхронизируйте проверенные состояния с выбранным спискомMovie.Genres другим способом. :) – Rachel

ответ

0

Ваш подход, конечно, не рекомендуется один для проблемы, как ваша.

Как правило, можно определить многозначное ссылочное свойство genres в классе Movie, и это свойство будет содержать только жанры, назначенные для определенного фильма.

Обратите внимание: логически/концептуально вы имеете дело с однонаправленной связью между Movie и MovieGenre, назначая жанры фильмам.

+0

Первая часть вашего ответа кажется убедительной. Однако перечисление жанров сделало бы его фиксированным списком. Глобальный список жанров может расти или сокращаться, управляемый пользователем. В любом случае, я думаю, я это выясню. Моя основная забота заключается в том, как запрограммировать пользовательский интерфейс, чтобы придумать подмножество жанров, назначенных для соответствующих фильмов. Благодарю. – Lucifer

+0

Хорошо, вы правы, если список жанров не сильно исправлен, то вы не можете использовать перечисление, но вам нужен другой класс. Я отредактирую свой ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^