Playframework 到处玩框架静态方法

Playframework 到处玩框架静态方法,playframework,Playframework,因此,我刚刚开始研究Play框架,我在示例中看到了这一点(http://www.playframework.org/documentation/2.0.4/JavaTodoList)一切似乎都是静止的。我是那些相信静态并不完全是件好事的人之一,如果你需要一个静态,你可能应该使用单例。请更熟悉play框架的人告诉我,与更符合单例模式的东西相比,这些静态调用的思维过程是什么?我知道在最初的静态方法调用之后,我可以实现我想要的任何模式,但在我看来,这里还可以做些别的事情来限制静态方法的使用。今天我还是

因此,我刚刚开始研究Play框架,我在示例中看到了这一点(http://www.playframework.org/documentation/2.0.4/JavaTodoList)一切似乎都是静止的。我是那些相信静态并不完全是件好事的人之一,如果你需要一个静态,你可能应该使用单例。请更熟悉play框架的人告诉我,与更符合单例模式的东西相比,这些静态调用的思维过程是什么?我知道在最初的静态方法调用之后,我可以实现我想要的任何模式,但在我看来,这里还可以做些别的事情来限制静态方法的使用。今天我还是第一次看到游戏框架,所以我可能遗漏了一些东西,所以请随意启发我。谢谢。Play的方法是无状态的,而非静态方法将状态引入类

单例模式在那里也不起作用。对于单例,一个类只有一个全局实例。根据您的定义,这可能有4种结果(可能更多,但我想不出任何结果):

  • 如果您的单例实例是有状态的,并且全局表示应用程序范围,那么同一页面的多个访问者将共享相同的状态(“哦,看,我现在是用户X。这很奇怪。”)
  • 如果您的单例实例是有状态的,并且每个HTTP请求都是全局平均值,那么您只需要创建一个新的“单例”,而不重用它,这使得单例模式(在我看来)毫无用处
  • 如果您的单例实例是无状态的,那么为什么还要为它生成一个实例并管理一个实例而烦恼呢

第四点是有状态的单例,即每个用户的全局平均值。事实上,这是一种管理用户会话的简洁方法。但这不是游戏的方式。

我不确定我是否同意你所说的无状态单身声明。我完全同意使用无状态方法,但我认为,只要开发人员希望全局使用对象(无论全局范围如何),该对象就不应该维护任何状态。显然,这不是一条硬性规定,更像是一条指导线。重复问题,由纪尧姆·博尔特回答