Play Framework静态方法无处不在

时间:2012-12-03 15:18:43

标签: playframework

所以我刚开始看看Play Framework,我在示例(http://www.playframework.org/documentation/2.0.4/JavaTodoList)中看到,一切似乎都是静态的。我是其中一个人虽然认为静态不是一件好事,如果你需要一个静态,你可能应该使用单身。有人可以更熟悉游戏框架,请告诉我们所有这些静态调用的思维过程是什么,而不是更符合单例模式?我知道我可以在初始静态方法调用之后实现我想要的任何模式,但在我看来,在这里可以做其他事情来限制静态的使用。我今天第一次看到游戏框架所以我可能会遗漏一些东西,所以请随时赐教。感谢的。

1 个答案:

答案 0 :(得分:3)

Play的方法是无状态,而非静态方法将状态引入类。

Singleton模式也没有真正起作用。使用Singleton,您可以完全一个类的全局实例。这可能有4种可能的结果,这取决于你的定义(可能更多,但我想不出任何结果):

  • 如果您的Singleton实例有状态全局意味着应用程序范围,则同一页面的多个访问者将共享相同的状态( “哦,看,我现在是用户X.这很奇怪。”)
  • 如果您的Singleton实例有状态全局意味着每个HTTP请求,那么您只需创建一个新的“Singleton”并且不要重复使用它,使Singleton模式(在我看来)无用。
  • 如果你的Singleton实例是无状态,那么为什么还要为生成一个实例并设法只拥有一个呢?

第四点是有状态 Singleton,其中 global 表示每个用户。实际上,这确实导致了一种管理用户会话的简洁方法。但这并不是Play的做法。