首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么CloudFrontUrlSigner是aws-java-sdk中的枚举

为什么CloudFrontUrlSigner是aws-java-sdk中的枚举
EN

Stack Overflow用户
提问于 2019-01-03 02:08:35
回答 1查看 180关注 0票数 1

sdk的源码说明com.amazonaws.services.cloudfront.CloudFrontUrlSignerenum类型。

为什么他们不将其作为一个普通的java实用程序类来实现;例如,使用public static方法的class CloudFrontUrlSigner

使用enum有什么主要的原因吗?或者他们就是这样设计的。

EN

回答 1

Stack Overflow用户

发布于 2019-01-03 03:27:14

检查您提到的类的源代码似乎表明CloudFrontUrlSigner只是一个实用的类,公开了一些公共的静态方法。这些方法是公共的和静态的,本质上是作为实用程序方法工作,它接受一些参数,对它们进行一些后处理,然后返回一些东西(在本例中是一个String)。

因此,如上所述,该类的核心功能本质上是一个实用程序助手类。考虑到这一点,在创建任何实用程序类时都必须考虑最佳实践。主要围绕着避免无意中实例化有问题的类的概念。

考虑到这一点,假设开发人员需要采取什么行动来确保这一点,如果他们选择用一个普通的类来实现这一点。他们必须将类声明为final (以避免继承),并将私有构造函数放在适当的位置,然后创建所有的公共方法。

不过,选择使用enum几乎可以提供上述所有开箱即用的功能。您不能从enum继承,也不能用new实例化。

总而言之,他们选择这样做似乎是为了遵守创建实用类的最佳实践。理想情况下,对我来说,我会使用相同的enum概念,但更愿意使用上述方法的单例服务。

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

https://stackoverflow.com/questions/54011134

复制
相关文章

相似问题

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