在 GWT MVP 中,我的演示者通常有很多私有成员(事件总线、rpc、使用 GWT.create() 创建的消息包...)。我们一直在使用“ClientFactory”将视图生成为单例,因此每次我们需要它们时都不会重新创建它们。该工厂还可以提供 rpc、事件总线和其他资源。
我可以在GWT 文档中读到the main purpose of this factory is to gain access to object needed through your application. The second advantage of using a ClientFactory is that you can use it with GWT deferred binding to use different implementation classes based on user.agent or other properties.
我的问题是:如果我不需要并且永远不会需要具有延迟绑定的工厂的不同实现,我不能只使用静态类和方法来检索我的依赖项而不是客户端工厂或 Gin吗?在这个解决方案中,我无法真正抓住 Gin 的优势,也无法在某些时候/在某些(不明显的)情况下给我带来麻烦。我通常会避免在服务器端代码中使用静态类,因为它是多线程的,但在客户端单线程代码中,我看不出哪里会出现问题。然而,似乎大多数人使用杜松子酒或其他解决方案......