首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java接口静态方法解决方案?

Java接口静态方法解决方案?
EN

Stack Overflow用户
提问于 2009-11-13 02:51:43
回答 4查看 3.3K关注 0票数 3

我们有一个给定的REST接口:

代码语言:javascript
复制
POST /calculation
<data>abc</data>

根据服务器配置的不同,这种计算可以由不同的逻辑“计算器”实现。

我们现在正在设计每个计算器必须实现的Java接口。该接口将为每个REST服务提供一个方法。

假设所有的REST (和HTTP)调用都是无状态的,那么每个方法都应该是静态的。但是,您不能在Java接口中定义静态方法。对于这种情况,有没有好的解决办法?

我们可以将这些方法定义为非静态的,然后只需先创建计算器类的一个实例。通过在接口中使用static关键字来指示方法是无状态的似乎更清晰。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-11-13 02:58:22

在我看来,您需要一个方法声明为正常的接口,以及一个实现类,然后简单地实例化它的一个实例。这些方法本身没有理由是静态的。

票数 1
EN

Stack Overflow用户

发布于 2009-11-13 03:03:58

无状态并不意味着静态。无状态意味着组件不依赖于状态。我之所以说组件,是因为接口的整个实现实际上是无状态的--它不会有任何成员变量。所以实现类的多个实例是完全可以的。尤其是如果您有一个上下文来管理它们--例如Spring或EJB。

票数 7
EN

Stack Overflow用户

发布于 2009-11-13 02:53:58

为什么你认为这些方法应该是静态的?它们当然可能是,但这会限制您以后插入不同的实现。如果您关心内存消耗之类的问题,那么使用单例对您来说与静态一样,正如您在问题的最后一段中所说的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1724502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档