我有一个视图页面
例如三个文本框~
让客户输入产品数据
之后与我方产品数据进行比对 如果数据不对,则提示相应的错误现在数据格式较为简单,只需要比对 数量,价格 可是以后扩展后,可能会有很多项,比如时间,产品品牌,供销商之类的如果10项以内,还能用IF ELSE 解决,可以后30项,100项呢扩展性较好的方法~求大神给提个醒。

解决方案 »

  1.   

    这个地方不要用if else,一旦判断不符合直接给出提示并return,例如:
    if(数量不满足要求)
    {
        输出提示信息
         return;
    }
    if(价格不满足要求)
    {
        输出提示信息
         return;
    }
    //如果都满足要求
    执行其他代码
      

  2.   

    那要一条一条的把框里的值获取出来。然后验证了。再一起返回,或者可以用个变量来保存 是否可以提交至数据库这个的状态信息 flag。和一个message消息信息。然后只要验证的地方出现错误,。flag就等于flase 并继续验证下去 然后把错误信息都用+=的方式记录在message里。。最后一起提示。。
      

  3.   

    数据要有规则。
    比如
    数据现有:
    class Data{Number, Price, TotalPrice}
    规则是:
    Rule 0:
    Number: [Number]
    Tip: "Must be Number"
    Rule 1:
    Price:  [Number]
    Tip: "Must be Number"
    Rule 2:
    TotalPrice: [Number] <={Number}*{Price}>
    Tip: "Must be Number and equals with Number*Price"
    现在的逻辑可以是
    1:Dictionary来记录数据 [Number, 10] [Price: 30] [TotalPrice: 300]
    根据Key和Rule表来确定提示语
    <={Number}*{Price}>这一行需要自己写程序分析
    2: 用类型累积录数据
    跟据反射的Property名字和Rule来确定提示语
    同样<={Number}*{Price}>需要自己写程序分析这种做法你可以不用任何的if else,并且可扩展性非常高。
    Message message = Validate(DATAs,RULEs)
    即可获得所有需要的信息。这时候难点在分析<={Number}*{Price}>上, 看看逆波兰式就可以完成这一部分的编程。