这是我今天写程序时突然想到的,不知道对不对恳请勘正:
我,包括我看到的一些例子,都是把访问数据库的相关操作封装到一个类中,然后再每个aspx页面实例化一个数据库操作类的实例进行操作,今天做的例子里他把数据库中的方法都写成静态方法如:
public static bool getDataReader()
{ ..........}
这样就不必在每个页面实例化一个类。
我突然想到的是:在每个页面实例化一个实例,在有很多人访问网站时,它是否要实例化好多实例呀?这样应该对性能有所影响吧?或者说会频繁地启动垃圾回收!
或者可以这样问:什么时情况下适合用static?
我的一点理解:是不是 假如一个类 Class1中有100个方法,我不用静态方法static时,实例化(Class1 c = new Class1)需要分配10K内存,而把类Class1中的方法都改成static 实例化类时也许就用1K内存了?因为static 方法不属于某个实例。
你可以全部写成static慢慢往下做,没有人能说static一定不好,或者static一定好,成长和提高是要犯错误才能得到的
按自己的意愿往下做,如果没有问题,就说明这种方式是适合你的项目的,适合的就是优秀的
如果出现问题,那么你一定会发现问题是什么,然后再去思考哪种方式是最合适的
亲身经历过,才是最快的成长
为了避免被人说我在空谈,在这里我就提出一个用static的不好的地方:
数据库连接的生命周期很难管理
至于为啥很难管理,做下去自然会发现的~
ls,只要不把sqlconnection设成static就不会有生命周期问题的吧:)
感觉那个好像是设计方面的事情了,都搞成了静态的那设计模式没法整了,小站,要求性能那样应该也不会有问题。
还有lz的话10K自定义的类哪能那么多啊,至于不管有多少方法只要4字节的方法表的指针即可,主要是字段占用内存。感觉没必要计较那点性能
实例化(Class1 c = new Class1)需要分配10K内存,而把类Class1中的方法都改成static 实例化类时也许就用1K内存了?
------------------
这种想法很有问题。