none
请问逻辑层的类方法为什么要写成静态的啊? RRS feed

  • 问题

  • 新来了一件公司,  发现他们的逻辑层的访问数据层的函数大多都是静态的static

    我有个问题就是:

    以前的公司很少会用到静态的方法,而是在需要用到逻辑层类的地方,写一个
    私有的属性,比如:

    private ProductBLL productBll;
    private ProductBll PorductBllInstance{  
    get{
      if( this.productBll==null ){  this.productBll=new ProductBll(); }
      return this.productBll;
    }
      }

    总是觉得以前的写法比较好,因为这个逻辑层的对象在用的时候只会实例化一次 , 
    文艺一点说, 这是一种单例模式的写法,

    我想问问static的写法和单例模式的写法,各有什么好处和坏处啊??

    小弟刚刚当程序员,啥都不懂,求助各路大神!!!!
    2015年2月6日 1:59

答案

  • 你好:

    我建议你先找写资料看一下static关键字的意义。这里是MSDN文档:

    https://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx

    https://msdn.microsoft.com/zh-cn/library/aa664451(v=vs.71).aspx

    通常情况下,静态的成员的生命周期相对比较短,在使用完之后会被销毁,内存会被回收。但是有一些情况我们需要经常访问某些成员,如果频繁的创建,销毁会造成不必要的开销,所以需要让这些对象常驻内存,这时候static就派上用场了。但是不宜创建过多的静态对象,因为毕竟这些对象会长时间停留在内存里面。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年2月8日 7:09
    版主
  • static 在定义这个变量的时候就会一直在内存中的。

    单利   是在调用到这个对象的时候会实例化的,然后一直存在内存中的,知道进程结束。

    在不同的使用场景中,你可以判断不同的对象是否需要一开始还没用到的时候就存储在内存中还是在用到的时候存储。

    我只是用很简单的方式说明,希望能帮到你。

    2015年2月8日 15:08
  • 一般性的考量原則是: 與執行個體本身成員無關者通常會設計成靜態.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年2月9日 11:50
  • 静态类和单例模式都是常驻内存,直到当前程序释放或主动GC才会释放。

    静态类通常是一个需要全局访问且业务无关的。

    单例模式通常是因为该类实例化的代价比较大、不允许多次实例化、没必要多次实例化。

    另,你写的单例模式也是标准的。

    2015年2月11日 7:16

全部回复

  • 你好:

    我建议你先找写资料看一下static关键字的意义。这里是MSDN文档:

    https://msdn.microsoft.com/zh-cn/library/98f28cdx.aspx

    https://msdn.microsoft.com/zh-cn/library/aa664451(v=vs.71).aspx

    通常情况下,静态的成员的生命周期相对比较短,在使用完之后会被销毁,内存会被回收。但是有一些情况我们需要经常访问某些成员,如果频繁的创建,销毁会造成不必要的开销,所以需要让这些对象常驻内存,这时候static就派上用场了。但是不宜创建过多的静态对象,因为毕竟这些对象会长时间停留在内存里面。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2015年2月8日 7:09
    版主
  • static 在定义这个变量的时候就会一直在内存中的。

    单利   是在调用到这个对象的时候会实例化的,然后一直存在内存中的,知道进程结束。

    在不同的使用场景中,你可以判断不同的对象是否需要一开始还没用到的时候就存储在内存中还是在用到的时候存储。

    我只是用很简单的方式说明,希望能帮到你。

    2015年2月8日 15:08
  • 一般性的考量原則是: 與執行個體本身成員無關者通常會設計成靜態.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    2015年2月9日 11:50
  • 静态类和单例模式都是常驻内存,直到当前程序释放或主动GC才会释放。

    静态类通常是一个需要全局访问且业务无关的。

    单例模式通常是因为该类实例化的代价比较大、不允许多次实例化、没必要多次实例化。

    另,你写的单例模式也是标准的。

    2015年2月11日 7:16