MVC: Использовать представления, константы или свойства модели? - PullRequest
0 голосов
/ 16 декабря 2011

Допустим, в моем приложении mvc есть модель, которая имеет много разных типов. Есть одна таблица БД, но есть куча подклассов, которые выражают немного различное поведение.

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

Вариант 1 (старый способ предварительного рефакторинга) : в массиве со свойствами для каждого из полей сведений. Преимущество в том, что я могу перебирать все возможные типы. С классами нечего итерировать. Я бы предпочел избавиться от этого массива.

Вариант 2: В модели как свойства. Представления будут обращаться к этим свойствам на основе текущего активного типа, но мне все равно нечего перебирать и показывать все типы. Возможно, мне придется показать их все явно (только 9 из них, не страшно.)

Вариант 3: В отдельных видах буквально написано. У меня было бы 9 разных взглядов, но это позволяет им немного отличаться. Расположение каждого типа может варьироваться.

Для некоторых деталей, это для игры, и модель представляет собой набор действий, которые может выполнить ваш персонаж. Они ведут себя одинаково, но по-разному влияют на различные характеристики.

1 Ответ

0 голосов
/ 16 декабря 2011

Почему бы не пойти с чем-то вроде этого?

public interface ICharacter {
 IEnumerable<ICharacterAction> Actions {get;set;}
}

public interface ICharacterAction {
 string Description {get;set;}
}
...