java – 获取客户订单:设置getAllOrders()与Set getAllOrders()
我没有做太多的
Java编程,因此很多未解决的ORM问题在我脑海中浮现,对于更多经验丰富的人来说似乎相当直接.
假设我们有两个类:Customer和Order. Customer类实现了一个名为listAllOrders的方法,该方法的签名应该是什么? >设置<订单> getAllOrders(); // OOP方式 我的想法是立即解雇第三个选项,因为优化是不成熟的,不需要的,并且很可能导致更多的麻烦而不是好的. 在第一个和第二个选项之间进行选择,主要论点似乎是在许多情况下返回一组订单而不是id’s将是一种过度杀伤力. 第一个选项总是需要将订单预先加载到内存中,虽然一些订单属性可以通过延迟加载来处理,但Order对象本身仍然需要更多的内存分配而不是一组裸ID.另一个原因似乎是延迟加载不会给我带来使用final修饰符来强制Order字段的不变性的优势. 但是,选项2并没有真正封装订单编号,即如果决定开始使用字符串UUID或者长期作为订单标识符而不是整数,则需要进行严格的重写.显然,通过引入一个名为OrderId的新轻量级对象(第四种方法)可以减轻这种情况. 好吧,在这一点上,我非常感谢ORM和Java大师的一些帮助! 解决方法
知道调用者想要什么总是有帮助的.如果每次返回订单ID都不是优化,则调用者将不得不查找每个订单.另一方面,如果大多数时候他们不需要所有这些信息,那么就没有任何回报.
我大部分时间都会去选项1.但如果它像智能手机一样受到记忆的限制,我想我会选择懒惰的扩展. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |