Шаблон для пользовательского интерфейса: один и тот же объект, отображаемый по-разному - PullRequest
2 голосов
/ 19 декабря 2008

У меня есть приложение для ввода серийных номеров в базу данных. Серийный номер имеет заданное количество атрибутов, которые его определяют, и пользователь должен / может предоставить их для генерации.

public class Serial
{
    public string Number {get; set;}
    public string Part {get; set;}
    public string MfgOrder {get; set;}
    public string CusOrder {get; set;}
    public string Note {get; set;}
    ... etc ...
}

Теперь начальная точка этого приложения запрашивает у пользователя одну из нескольких частей информации (например, номер детали или производственный заказ и т. Д.). Эта начальная точка может уже заполнить некоторые обязательные пользовательские данные. Затем я хотел бы взять эти известные предметы и изменить форму на их основе.

Например. Если две части информации - это номер детали и номер заказа Mfg, а пользователь предоставляет номер заказа Mfg (который имеет отношение к номеру детали из базы данных), я хотел бы отобразить эти значения, но не разрешить их изм. Если вместо этого пользователь просто дает мне номер детали, я хочу разрешить представлять Mfg Order в виде текстового поля с (возможно) необязательным или обязательным рядом с ним.

public class MfgOrder
{
    public string MfgOrder {get; set;}
    public string Part {get; set;}
}

...

MfgOrder order = new MfgOrder(some_user_value); // queries database, returns populated object
Serial serial = new Serial() {
    MfgOrder = order.MfgOrder,
    Part = order.Part
};

Это приложение работает прямо сейчас, просто имея условия if / then в пользовательском интерфейсе - если вы дали мне Mfg Order, отобразите его таким образом, если вы дали мне что-то еще, сделайте это таким образом и т. Д. Проблема Несколько новых опций были запрошены и постоянно объединяются в цепочку, если / то операторы становятся действительно ужасными.

if(serial.comes_from_mfgOrder == true)
{
    %>Manufacturing Order: <%=serial.MfgOrder %><%
} else if (serial.comes_from_part_number == true) {
    %>Manufacturing Order: <%=Html.Textbox("MfgOrder")%><%
} else if // continue this for way too long now ...

Есть ли здесь хороший шаблон дизайна?

Спасибо!

Ответы [ 2 ]

1 голос
/ 19 декабря 2008

Я считаю, что шаблон, который вы ищете, это Model View Controller или MVC.

http://www.dotnetheaven.com/Uploadfile/rmcochran/MVC_intro02012006001723AM/MVC_intro.aspx

1 голос
/ 19 декабря 2008
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...