工具库方法。不需要实例化的方法。与具体业务无关,执行比较频繁,用的地方多的方法。
得嘞,还是您老这个号
其实就是两个字:懒。
应用实例呢,大叔,给点实例啊啊
@代码小兵的成长: 不关心实例的就用Static。
简单说, 你只是想要有金子,至于张三还是李四帮你淘的,你压根不在乎。
@爱编程的大叔:
唉,你的性格,让我蛋疼,不过哥喜欢你,哈哈
其实如果你是简单 网站不考虑 扩展性 那么 直接 就 静态方法 完全可以。 但是考虑已扩展这种 显然不试用了 。
效率上 静态方法 和实例化对象 这个可以忽略不计。
应用场景、场景场景啊啊啊啊啊啊 啊
不需要实例的时候,或者说方法的调用不依赖实例的时候。比如说Math包下面的方法,他不需要创建对象,所有人调用都一样 。
在你需要的时候用....
我们之前的技术主管,告诉我说.用静态方法可以解决并发问题.我差点喷他脸上
有的博客确实这样说的,然后下面一堆人喷,不过,我看过一篇文章,说是静态方法在IL中只有一个方法,非静态方法无论创建几个,只要不销毁,也是在IL中只有公共的一个。
@代码小兵的成长: 这个是函数的事.每个函数代码肯定是只有一份的.只是函数指针的分配方式不同.
不关心实例状态的方法都可以static
1.在进行单元测试的时候,用static来在首先加载properties文件
2.初始化缓存。
static{
for(CacheTypeData tyep : CacheTypeData.values())
{
cache.put(type,new HashMap<String,List<Object[]>>));
}
}
其中CacheTypeData是一个枚举类
如果一个方法 MethodA 属于类 ClassA,但又不需要实例化 ClassA 就可以调用,那么 MethodA 就应该设计为 static。
举例:
SqlConnection.ClearAllPools();
@爱编程的大叔:
总算有大神支持我的数据库用static的说法了
@代码小兵的成长: 还有 C# 中的扩展方法,必须是静态的(在这里不是好不好的问题,而是只能这么用)。因为在 C# 中,一个方法必须属于某个类,因此在做设计时,多多少少就会碰到类似的类设计问题。
如果认真的分析下 SqlConnection.ClearAllPools() 的设计,你会发现一些基本的设计原则。
@代码小兵的成长: 你确定?好吧,所有的错误你必须经历一次,才能发现别人为啥说好痛。
我没说不能用,我也经常用啊,只是你得知道哪儿会痛。
@爱编程的大叔: 别批评我,我没说,不是我说的大叔