2011-12-16 2 views
0

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

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

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

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

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

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

ответ

0

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

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

public interface ICharacterAction { 
string Description {get;set;} 
} 
+0

Потому что этот вопрос помечен как «PHP», а не «C#» – DarkDevine

+0

ах, мой плохой. Тем не менее, то же самое можно сделать и в PHP. –