(立即节贴)业务逻辑层的方法做成静态与非静态的区别.

业务逻辑层的方法成静态与非静态的区别.

我看有的项目bbl是补通方法,在UI需要实例化一下.有的则是静太的.ui直接打点调用.
使用肯定是后一种方便.不知道,后一种有什么隐患没有?

慕斯709654
浏览 440回答 15
15回答

慕容森

静态方法:常驻内存,类的静态成员调用是共用同一个块区域。调用速度比实例快,使用方便。 非静态方法:每创建一个类实例时,系统为非静态成员新分配一块存储,因为它需要实例化对象,因此比静态方法稍慢,必须实例化类后才能调用。 非静态方法能访问类中的所有成员,而静态方法只能访问静态变量。 静态方法不自动进行摧毁,而实例化则可以做摧毁。 非静态方法则是让开发更加面向对象化。

qq_花开花谢_0

那个回答,没有答到点上.静态方法,我了解. 我是问有没有什么隐患 ,大家都是怎么做的呢?

喵喵时光机

@beyoung:没有什么安全隐患,如果这样,你直接看静态方法和实例方法的区别就可以了。

HUX布斯

你的业务逻辑类如果没有状态的话,就用静态方法,把这些静态方法放到一个类下,顶多是便于区分静态方法功能而已。

MMMHUHU

简单点来说,静态方法,你需要保证线程安全

慕尼黑8549860

能详细说说吗?举个例子最好的是.

芜湖不芜

很多人访问的时候,会有多线程案全的隐患吗?

一只萌萌小番薯

比如说,数据库处理,静态共用一个Connection时,假如如下的写的

缥缈止盈

if(!opened){ open connection(); } ... close connection() 这样的情况下,如果A线程、B线程都执行到该方法中了,但是A线程把connection对象关闭了,则B的访问就会出错了

婷婷同学_

假如用静态的话,层间调用就是紧耦合的,如果想更灵活一点的话,你可以研究下IoC,既可保证性能,也可以松耦合。
打开App,查看更多内容
随时随地看视频慕课网APP