加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 获取客户订单:设置getAllOrders()与Set getAllOrders()

发布时间:2020-12-15 08:29:55 所属栏目:Java 来源:网络整理
导读:我没有做太多的 Java编程,因此很多未解决的ORM问题在我脑海中浮现,对于更多经验丰富的人来说似乎相当直接. 假设我们有两个类:Customer和Order. Customer类实现了一个名为listAllOrders的方法,该方法的签名应该是什么? 设置订单 getAllOrders(); // OOP方式
我没有做太多的 Java编程,因此很多未解决的ORM问题在我脑海中浮现,对于更多经验丰富的人来说似乎相当直接.

假设我们有两个类:Customer和Order. Customer类实现了一个名为listAllOrders的方法,该方法的签名应该是什么?

>设置<订单> getAllOrders(); // OOP方式
>设置<整数> getAllOrders(); // db-friendly方式,基于为每个订单分配唯一int id的假设
> int [] getAllOrders(); //数据库友好的方式,优化
>设置< OrderID> getAllOrders(); // OOP方式,优化
>其他?上面通过方法重载的组合?

我的想法是立即解雇第三个选项,因为优化是不成熟的,不需要的,并且很可能导致更多的麻烦而不是好的.

在第一个和第二个选项之间进行选择,主要论点似乎是在许多情况下返回一组订单而不是id’s将是一种过度杀伤力.

第一个选项总是需要将订单预先加载到内存中,虽然一些订单属性可以通过延迟加载来处理,但Order对象本身仍然需要更多的内存分配而不是一组裸ID.另一个原因似乎是延迟加载不会给我带来使用final修饰符来强制Order字段的不变性的优势.

但是,选项2并没有真正封装订单编号,即如果决定开始使用字符串UUID或者长期作为订单标识符而不是整数,则需要进行严格的重写.显然,通过引入一个名为OrderId的新轻量级对象(第四种方法)可以减轻这种情况.

好吧,在这一点上,我非常感谢ORM和Java大师的一些帮助!

解决方法

知道调用者想要什么总是有帮助的.如果每次返回订单ID都不是优化,则调用者将不得不查找每个订单.另一方面,如果大多数时候他们不需要所有这些信息,那么就没有任何回报.

我大部分时间都会去选项1.但如果它像智能手机一样受到记忆的限制,我想我会选择懒惰的扩展.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读