如果做一个大型的项目。在来业务逻辑层中用static修饰方法会有什么好处和坏处。。如果采用非静态。。用实例化有什么好处和坏处哪种更适应大型网站的开发?请各位给出自己的意见最好有实际体会的。百度。谷歌直接帖过来的就免了谢谢大家了!!!!

解决方案 »

  1.   

    我只在DAL的SQLHelper里面使用静态类
      

  2.   

    静态方法只是一段代码而已,并不会带来什么安全,应该也不会出现什么问题,但也不能滥用,如果如果结合了静态成员变量,那就可怕了,不过我觉得static这东西尽量少用。
    一般情况下,使用频率较低的方法,尽量不要使用静态的
    使用静态方法,最好处理好与其访问的静态变量的关系。
      

  3.   

    静态方法效率比较高,同时可以全局使用,因此维护就有问题。
    非静态的比较符合软件工程的设计理念,维护性更好。出bug不那么容易影响其他地方。
      

  4.   


    比如说业务逻辑层的方法。是加static还是不加。就是这个意思。。
      

  5.   

    一直都挺没搞清楚 什么时候该用静态 什么时候用实例
    只是感觉 静态用起来很方便 实例总是要new 如果比较多的话 就有点麻烦
    内存方面就没研究过了
      

  6.   

    你了解了spring.net就知道了,业务对象基本上都是用单例模式
      

  7.   

    内事问百度,外事问谷歌,C#问PetShop
      

  8.   


    new出来的对象,使用完了,CLR也不是马上释放,一样占资源,而且对象初始化和销毁的操作更占资源
    用不用静态取决于实际情况,这种情况往往需要根据测试的结果来判断
      

  9.   

    建议楼主可以看看一些比开源的项目是怎么实现的例如微软的PetShop4里面非静态用的是非常多的有时候不能绝对的去追求效率,可以做个比较测试,不同的实现看速度提高了多少,而这些提高的速度,在整个项目中到底有多大的重要性。
      

  10.   

    .Net技术群108412141
    共同学习.Net技术,分享.Net学习资料,分享.Net工作机会
      

  11.   

    SQLHelper 中慎用静态,否则当频繁刷新某页面的时候会爆出一些莫名的错误!
      

  12.   

    方法有静态的非静态的,可以从下面几个方面说明问题。方法的存储:对于方法本身来说,都是一段装载到内存代码段(.NET通过CLR装载到代码段中)中的代码。方法的调用:方法调用是通过找到方法的入口地址然后通过建立方法的局部变量,参数等压栈后进入方法体开始执行方法内容的。方法的运行:方法是运行在线程上的,上面所说的栈就是建立在线程的空间上,每个线程每一时刻只执行一个方法的某一片代码。静态方法是不需要实例化即可通过类名直接调用的方法,非静态方法则需要实例化通过实例调用,从内存上来看,实例化是需要为对象分配空间的,但是方法的入口点并不变,所以从这方面的开销来说只是增加了实例化的开销,其他是完全一样的。另外一个值得注意的是静态方法在类被装载到CLR里面之后第一次使用的时候被编译,而实例化方法则需要首次调用这个实例方法的时候被被编译(从编译角度来说两个编译的时机也是一样的)。从另外一个角度来说,静态方法和实例方法在语义上是有明显区别的,这个区别我觉得比语言上的区别更重要。我在项目中一般无状态的控制类都是静态方法,帮助类是静态方法(有的是静态类),实例方法则是某个对象应该具有的某种属性所以使用实例方法。通过前面的分析,单纯从效率上来考虑两者直接没有本质的差异,只有语义上和使用上的差异。个人意见,仅供参考