在java中使用静态类时

时间:2016-09-26 11:47:10

标签: java static jersey

我对java不太熟悉。我创建了一个球衣网络服务器。有<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <div class="intro"> <h1>Hello, my name is I am a</h1> <h2 class="quotes">design addict</h2> <h2 class="quotes">avid doodler</h2> <h2 class="quotes">casual coder</h2> <h1>currently based in London, GBR</h1> </div>startRodio()stopRadio()等不同功能......我创建了一个setRadioIp()类来处理RequestHandler个请求和另外一个{{1}实现它们的类。 http类的所有属性和方法都是静态的。它看起来像

单选

Radio

RequestHandler

Radio

这对我的程序来说是一个很好的架构吗?以这种方式使所有属性和方法静态是一个好习惯吗?

5 个答案:

答案 0 :(得分:1)

我想说的是,如上所述,默认使属性为静态不是好习惯。

如果您只有一个像Radio这样的对象的实例,那么使用singleton pattern和私有属性与适当的getter和setter。这通常是最好的方法,因为您将公共接口与私有实现分开,并且实现中的更改(例如重命名变量)会导致应用程序的其他部分出现问题并需要重构。

静态变量应仅用于已定义类型/类的某些公共属性。例如,您可以在静态变量中计算类的现有实例。

答案 1 :(得分:1)

最好避免使用静态变量。这不是一个好习惯。静态变量具有全局范围,这使您无法进行测试。任何东西都可以修改静态变量。更重要的是,使用静态不是线程安全。此外,您无法控制静态变量的创建和销毁条款。所以不建议使用静力学。

答案 2 :(得分:1)

  1. 只是不要使用static个变量。它直接耦合了几个 你的课程。
  2. 如果您确定,可以使用单身代替静电 只需要一个物体。

答案 3 :(得分:0)

简单地说:不要使用静态

良好的OO设计中

静态异常。它导致您的课程之间的直接耦合。这使得以后更换&#34;实施&#34 ;;这使得编写合理的单元测试变得困难。

含义:默认情况下,您不使用 static 。可能存在可以使用的情况;但是您显示的示例代码看起来根本不应该使用 static

相反,您应该定义接口,表示 Radio 的功能;允许在该接口后面进行不同的实现。

答案 4 :(得分:0)

这取决于你在寻找什么。

假设您正在创建4个Radio对象。 的radioOne ....,radioFour ...

现在,如果您希望所有Radios同时启动,您应该选择静态变量,因为静态属性是类的所有对象的特征。它们不是任何特定对象的专属,在实践中,它们应该使用类似的评估:

Radio.radionOn = TRUE;

而不是radioOne.radioOn = true;

所以,我建议你只将那些属性设为静态,这对所有对象都是通用的。如果所有属性都属于这个范围, 那么这意味着你只想要一个对象用于该类,因为你的所有对象的行为都相同。所以最好有一个对象。在这种情况下,请使用单例模式进行对象创建。