是这样的,比如有一个数据库操作类
class mydb
{
public static void myselect()
{....}
}
大概意思就是这么一个形式,这个类包含了对数据库的增,删,改,读,操作的一些方法, 我习惯把这些方法都写成静态的。然后在使用的时候,就用
mydb.myselect(....) 就可以了,不用声明实例,我觉得很方便.最近我看到有人这么写类似的类,还是我上面的类,但是他把数据库操作方法,不写成静态的
class mydb
{
public void myselect()
{....}
}
其它的,都和我一样,在这个类成员调用的时候,是用这个方式来写的
(new mydb()).myselect()..这个用法,我也能理解,也会使用,
我想听听大家的说法,在做项目开发的时候,用哪种方法声明类方法比较好? 为什么? 谢谢
class mydb
{
public static void myselect()
{....}
}
大概意思就是这么一个形式,这个类包含了对数据库的增,删,改,读,操作的一些方法, 我习惯把这些方法都写成静态的。然后在使用的时候,就用
mydb.myselect(....) 就可以了,不用声明实例,我觉得很方便.最近我看到有人这么写类似的类,还是我上面的类,但是他把数据库操作方法,不写成静态的
class mydb
{
public void myselect()
{....}
}
其它的,都和我一样,在这个类成员调用的时候,是用这个方式来写的
(new mydb()).myselect()..这个用法,我也能理解,也会使用,
我想听听大家的说法,在做项目开发的时候,用哪种方法声明类方法比较好? 为什么? 谢谢
不过,我觉得,实例化这种方法,在每次操作数据库时都需要去实例化一个对象,不仅占有空间,而且影响速度。呵呵。我觉得用静态方法就没有这个问题,
至于数据库连接的问题,在每个方法结束时记得是否链接资源就行了。呵呵
而且实例化一个对象后很快就能被GC给回收掉,这方面的性能损失我个人认为很小。
不知大家意见如何
普通的静态方法是不会有同步问题的,除非共用了某个变量,可以通过lock解决
静态方法中创建的对象一样会及时垃圾回收,不存在性能问题
singleton方式一样
但是你的LOCK和SINGLETON方式本来带来的性能方面的损失怎么解决?你一个方法在某个时间段只能有一个线程来访问啊。如果你这个方法体很复杂你LOCK下那不是要后面的等死?
PS:顺便请解释下你提到的
普通的静态方法是不会有同步问题的,除非共用了某个变量这句
类中的static方法:http://topic.csdn.net/t/20051107/22/4377925.html#
比如SqlHelp就是这样