玩!框架使用< lot>静力学
哇,玩!框架有很多静态方法。在我上学的地方,我们被告知永远不会使用任何静力学,但玩!使用它就像没有明天一样。那是不是很好?如果是这样,为什么?
我们(7个人和我)正计划使用Play!涉及Web应用程序的项目框架。我们决定玩Play!因为它看起来很有趣,我们所有人都已经知道Java并且任务很难,所以我们想要专注于实际的任务,而不是学习如何用不同的语言编程。
然而,我们总是被告知,在我们开发的任何Java程序中都不能使用'static',但是当我看到Play时! ......好吧......大约一半的方法都是静态的。 < /夸张>
我想,至少,我们可以使用单例对象(通过使用Scala,例如^^)来编程我们的项目,但我非常担心框架本身实际上有多少静态。
那么,我应该关注这个吗?玩的方式!开发人员编程使它成为所有这些静态不会造成问题的?
(例如,这个主题有一个关于为什么要不惜一切代价避免静态成员的咆哮。)
没有找到相关结果
已邀请:
14 个回复
缝皋
藕挝
-s,因此它解决了Java语言之外的静态问题。但那不是一切。有人说控制器方法是正确的静态。当然,但是在普通的Java中它会很不方便,因为你不能在没有某种前缀的情况下访问特定于请求的数据,比如
在
,然后你仍然需要从某个地方获得
,比如作为参数静态控制器方法,这更麻烦。然而在Play中你可以直接写
而且喜欢它们只是静态字段。那是因为Play使用字节码检测将所有静态字段引用更改为更智能的东西。同样,Java语言之外的解决方案。那些不是最后的静态字段。 所以,一般来说,避免非最终静态。 Play虽然为你带来了魔力,所以在这种情况下不要害怕它们。
骇毖煽洁铂
的静态方法,我想,你的应用程序类是有意义的。
拈吉勉犬姆
中的控制器路径的开头添加@就可以了:
对于旧版本(2.1到2.3),您必须覆盖Global类中的getControllerInstance,如Documentantion中所述。
裸雷胜檀哭
方法附加到Integer会更好。但我们不能;所以我们坚持使用
。 我倾向于认为,当一个方法与实例本身无关时,将方法设置为静态是正确的。例如,在类
中,您可以使用一种方法来获取人员列表,并返回今天有生日的人数。如果计算所需的数据是私有的(OO纯粹主义者会理解的东西;)),也许你只能在类本身中执行此操作,但该方法显然与单个Person实例无关。 另一件事是内部课程。如果不需要与包含类型的关系,通常希望将它们设置为静态。 我从未见过Play!但如果你说它超过50%是静态的,那么我猜它可能设计得很糟糕。那也不例外;很多框架都是。不要让它让你失望。绝对不要向它学习! 但如果它有效,你仍然可以使用它。
徐百晴墓斜
伞腹
然后使用DI将IService实现注入Controller。关键是在测试中,您可以在运行Controller之前实例化IService,然后根据您刚刚生成的IService测试结果。 在Play中,这变得非常困难。因此控制器单元测试变得困难。对我来说,这是一个重大问题。因此,我倾向于寻找除Play之外的其他框架!在Java世界中。哎呀,为什么不使用原版并只使用JRuby?
际恃啸称桅
社攻取墟槽
埃输林桨铃
bab
哩翔购
方法/字段,但它们可以安全使用,并且不必引起关注IMHO。
师埠女
垫歌蝎降凤