我有一个输入序列号到数据库的应用程序。序列号具有一定数量的属性,用于定义它,用户必须/可以提供它们来生成。
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订单显示为一个文本框,可能是(可能)可选的或旁边需要它。
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
};
这个应用程序现在正在工作,只是在UI中有if / then条件 - 如果你给了我一个Mfg订单,就这样显示,如果你给了我别的东西,就这样做,等等。问题已经请求了几个新选项,并且如果/然后语句变得非常丑陋,则会不断链接。
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 ...
这里有一个好的设计模式吗?
谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
我相信您正在寻找的模式是模型视图控制器,或MVC。
http://www.dotnetheaven.com/Uploadfile/rmcochran/MVC_intro02012006001723AM/MVC_intro.aspx