java静态字典怎么存_java – 你把字典数据放在哪里?

假设我的应用程序中有一组国家/地区.我希望这些数据能够改变,但不是经常发生.换句话说,我不会将此集视为操作数据(例如,我不会为Country提供CRUD操作).

那说我必须在某个地方存储这些数据.我看到两种方法:

>数据库驱动.创建并填充Country表.提供某种DAO来访问它(findById()?).这样,客户端代码必须知道国家/地区的ID(也可以是名称或ISO代码).在申请方面,我将有一个国家级.

>应用驱动.创建一个枚举,我可以列出我系统已知的所有国家/地区.它也将存储在DB中,但区别在于现在客户端代码不必具有查找方法(findById,findByName等)和硬编码ID,名称或ISO代码.它将直接引用特定国家.

我倾向于第二种解决方案有几个原因.你怎么做到这一点?

这个’字典数据’是否正确?

附录:这里的一个主要问题是,如果我有一个像findByName(“捷克斯洛伐克”)这样的查找方法,那么在1992年之后,这将不会返回任何内容.我不知道客户端代码将如何对它作出反应(毕竟sorta期望总是让国家回来,因为,好吧,它是一个字典数据).如果我有像findById(ID_CZ)这样的东西会变得更糟.找到所有这些依赖关系真的很难.

如果我要从我的枚举中删除Country.Czechoslovakia,我将强迫自己照顾对捷克斯洛伐克的任何依赖.

解决方法:

这对你没有帮助,但这取决于……

你打算和这些国家做什么?

您是否将它们存储在数据库中的其他表中?如果添加新国家/其他应用程序是否可以访问这些数据,现有数据会发生什么?

– 你打算用几种语言翻译contry名字吗?

– 您的应用程序的业务逻辑是否取决于所选择的国家/地区?

– 你需要国家课吗?

等等…

如果没有更多的信息,我会从一个包含几个国家的Enum开始,并根据我的需要进行重构……

标签:java,enums,dictionary

来源: https://codeday.me/bug/20190527/1160912.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值