我有一个使用iBatis映射到域类Category的表类别。我应该将此类用作JavaBean吗?产品的bean应该具有其他属性,例如此类别中的产品数量。这些属性不属于域类类别。如果我使用Category作为bean类,它仍然相关吗?在这种情况下,提供类似于CategoryBean的包装类是否更好?它会增加代码的复杂性吗?
答案 0 :(得分:1)
这场辩论有几个方面(这是辩论)。
首先,Java软件开发界普遍认为软件需要高度分层。这通常意味着拉出域对象并将它们转换为表示对象。它可以更进一步,并有服务对象和其他服务对象。
这通常会导致大量的样板属性复制带来可疑的好处。
要问自己的一个问题是:来自Ibatis的物品是否适合演示?或者它们是通用的,例如,每个表有一个类?
轻量级Java应用程序完全有权选择一种方法,Ibatis将运行查询,返回视图层所需的确切信息,然后将其一直传递(这不会太远)。现在这在大型应用程序上存在可伸缩性问题。最终可能会有数百甚至数千个这样的东西,因此在这些情况下您可能需要采用不同的方法。然后,在这些情况下,您可能最终会得到数千个演示文稿对象。抢劫彼得支付保罗?
我个人不喜欢Ibatis中的每桌一类方法。那不是它的力量。这是Hibernate和JPA的优势。 Ibatis的优势在于它可以轻松地提取任何SQL查询(因为它只是SQL)。除非它给你带来麻烦,否则就这样使用它。