如果我在实体类中加入限制好,还是在业务层加入好.如:
public class Class1
    {
        private int _id;
        public int ID
        {
            set
            {
                if (value > 5000) throw new Exception("编号长度不能大于5000");
                _id = value;
            }
            get { return _id; }
        }
    }public class Class2
    {
       public addID(model m)
      {
     if(m.ID> 5000)  throw new Exception("编号长度不能大于5000");
     }
      
 }
以上两种方式你们觉得哪个更合理,并说明理由。

解决方案 »

  1.   

    顶一个,我觉得应该用第二个,,应为项目中,你第一次判断的,肯定使用第二个比较好,如果你是用的是vs2010的mvc那就是用第一个吧!
      

  2.   

    都可以,没有很大问题。对于所谓“实体”,其实不同的人有完全不同的解释。你的代码,我看作是一个单进程内的模型。假设你的实体概念应该“穿越”不同的进程,比如说你的前端是javascript的、Eiffel的,或者甚至是一个3DMax插件(不知道什么开发语言),你怎样设计实体的规范?可见概念是死的,人是活的,任何话迟早都会因为对象领域的改变而改变概念。对于所谓实体来说,它也可能分为是针对各种前端而开放式公布的数据载体,它也可能是指针对底层各种存储机制而要求实现的内部对象。对于不同的层面来说,比如说对于某一种前端,它根本见不到、也转换不了后台针对底层而使用的实体类型,那些都是后台内部的事情(比如说把一个“猫”从前端的形式转换为内部的形式,并且最终转换为底层的形式)。可见即使考虑在同一个进程中不同层面使用不同实体,其实实体这个词也是有歧义的,往往甚至需要去分为不同的实体类型来使用。