我对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
这对我的程序来说是一个很好的架构吗?以这种方式使所有属性和方法静态是一个好习惯吗?
答案 0 :(得分:1)
我想说的是,如上所述,默认使属性为静态不是好习惯。
如果您只有一个像Radio这样的对象的实例,那么使用singleton pattern和私有属性与适当的getter和setter。这通常是最好的方法,因为您将公共接口与私有实现分开,并且实现中的更改(例如重命名变量)会导致应用程序的其他部分出现问题并需要重构。
静态变量应仅用于已定义类型/类的某些公共属性。例如,您可以在静态变量中计算类的现有实例。
答案 1 :(得分:1)
最好避免使用静态变量。这不是一个好习惯。静态变量具有全局范围,这使您无法进行测试。任何东西都可以修改静态变量。更重要的是,使用静态不是线程安全。此外,您无法控制静态变量的创建和销毁条款。所以不建议使用静力学。
答案 2 :(得分:1)
static
个变量。它直接耦合了几个
你的课程。答案 3 :(得分:0)
简单地说:不要使用静态。
良好的OO设计中静态是异常。它导致您的课程之间的直接耦合。这使得以后更换&#34;实施&#34 ;;这使得编写合理的单元测试变得困难。
含义:默认情况下,您不使用 static 。可能存在可以使用的情况;但是您显示的示例代码看起来根本不应该使用 static 。
相反,您应该定义接口,表示 Radio 的功能;允许在该接口后面进行不同的实现。
答案 4 :(得分:0)
这取决于你在寻找什么。
假设您正在创建4个Radio对象。 的radioOne ....,radioFour ...
现在,如果您希望所有Radios同时启动,您应该选择静态变量,因为静态属性是类的所有对象的特征。它们不是任何特定对象的专属,在实践中,它们应该使用类似的评估:
Radio.radionOn = TRUE;
而不是radioOne.radioOn = true;
所以,我建议你只将那些属性设为静态,这对所有对象都是通用的。如果所有属性都属于这个范围, 那么这意味着你只想要一个对象用于该类,因为你的所有对象的行为都相同。所以最好有一个对象。在这种情况下,请使用单例模式进行对象创建。