哇,这出戏!框架有很多静态方法。在我上学的地方,有人告诉我们永远不要用静力学,但要玩!就像没有明天一样。不知何故可以吗?如果是,为什么?
我们(7个人和我)正计划使用这出戏!涉及web应用程序的项目的框架。我们决定用玩的方式来做!因为这样做看起来很有趣,我们所有人都已经知道Java了,而且任务非常困难,所以我们希望专注于实际的赋值,而不是学习如何用不同的语言编程。
然而,我们总是被告知,从来没有在我们开发的任何Java程序中使用过“静态的”,但是当我看“玩”的时候……嗯……大约一半的方法是静态的。
我想,至少我们可以使用单例对象(例如,使用Scala ^^)来编程我们的项目,但我很关心框架本身实际存在多少静力学。
所以,我应该关心这个吗?演得太好了!开发人员对其进行了编程,这样所有这些静力学就不会产生问题了?
(例如,这条线抱怨为什么要不惜一切代价避免静态成员。)
发布于 2011-03-04 12:31:36
只有在有意义的情况下,Play才使用静态方法:
发布于 2011-08-04 19:15:14
游戏框架不是一个很好的演示什么时候使用静力学是适当的,也不是证明你的老师是错误的。游戏是一种欺骗,解决了Java语言之外的静态问题。
关键问题是您必须并行处理多个HTTP请求,并且静态字段是“全局的”。因此,对于某些事情,每个线程需要一个实例(或者更好的是,每个HTTP请求需要一个实例),但是其中一些东西是由正在使用的静态方法返回的。那是因为玩!大量使用ThreadLocal-s,因此它解决了Java语言之外的静态问题。但这不是一切。有人说控制器方法是正确的静态的。当然,但是在普通的Java中,这是不方便的,因为如果没有某种前缀就无法访问特定于请求的数据,比如req.在req.session中,然后您仍然必须从某个地方获取req,比如作为静态控制器方法的参数,这就更麻烦了。但是在游戏中,您可以直接编写session,就像,它们只是静态字段。这是因为Play使用字节码工具将所有静态字段引用更改为更智能的东西。同样,Java语言之外的解决方案。这些不是最后的静态字段。
所以,一般来说,要避免非最后的静力学.不过,玩会给你带来魔力,所以在这种情况下不要害怕它们。
发布于 2011-03-04 11:12:33
简单地看一下,我想说这有点道理: web请求是无状态的,因此没有对象可以接收请求(=方法)。因此,我想,将一个URI (如“/子文章/归档?date=08/01/08&page=2”)映射到一个名为archive()的静态方法上是有意义的。
https://stackoverflow.com/questions/5192904
复制相似问题