Hybris告诉我们转换器应该使用填充器而不是反之亦然,因为这对于性能考虑至关重要。
但是当我在使用hybris代码时,您可以看到像 DefaultAbstractOrderEntryPopulator , ProductFeatureListPopulator 这样的填充程序 是布线转换器。我也发现使用其他populator的Populators,如 ProductPopulator 。
我阅读了以下链接,但我找不到任何关于在populator中使用populator或populator内的转换器的信息:
Wiki Hybris - Converters and Populators
Wiki Hybris - DTOS best practice
那么,我们可以像Hybris一样在populator中使用转换器吗?和populator中的populator?
答案 0 :(得分:1)
我想提出我的观点来回答这个问题。使用转换器和填充器时的一个常见错误是混淆它们。
转换器创建填充DTO的DTO和填充程序。 当我们要在populator中使用转换器并完全确定时,我们必须非常小心 我们需要这样做。
如果我们有一长串使用转换器的populator,我们可能会面临性能风险。例如 C1-> P1-> C2-> P2-> C3-> P3 ....
我认为最好的做法是:
1)请注意转换器已经完成,并且如果我们必须将我们的populator添加到现有转换器中 (例如使用modifyPopulatorList)
2)如果我们的DTO与其他DTO有另一种依赖关系 我们应该问自己这种依赖性是否真的有必要。我将根据第二个DTO是否在很多地方使用来决定 或者不是。因为如果你是唯一一个使用它的人,也许你可以只在一个DTO中合并属性,并避免使用两个不同的转换器。
3)其他可能性我们可以看到并行使用不同的转换器 WIKI HYBRIS - Facades and DTOs
总而言之,我们的转换器和填充器的设计是我们的责任,我们必须得到最好的设计,以避免它们 性能问题。
答案 1 :(得分:0)
基本上这样做的方法是:永远不要编写具体的转换器类,也不要直接调用populator。
但这就是产品的可扩展性,坦白说,你可以做任何你喜欢的事情。