SAP SADL和SAP Hybris DTO

When you need a simpler or more convenient format for some of the data to display in JSPs
上面是从help.hybris.com摘录出来的原话,解释为什么我们需要DTO.
简单来说,就是因为Service Layer定义的model格式和UI需要的格式不是完全一样,如果UI直接消费Service Layer的model,代码写起来非常难看,而且会产生UI layer和service layer的强耦合。

SAP SADL和SAP Hybris DTO

更general地说,可以把DTO看成SADL的实现方式之一,处于BO(service layer) 和UI layer之间, 作为UI(consumer layer)消费Service layer的桥梁:

SAP SADL和SAP Hybris DTO

Hybris的DTO通常以data.java结尾,在我安装的6.5.0.0.23546这一版本里一共有445个DTO:

SAP SADL和SAP Hybris DTO

一个DTO例子:

SAP SADL和SAP Hybris DTO

在CRM Genil layer的实现里,虽然没有明文提出DTO的概念,但是从Genil layer这些方法的signature能看出这种DTO的思路其实也是蕴含在其中的:把数据从genil layer的format CRMT_PRODIL_DATA转换成UI layer的COMT_PRODUCT_MAINTAIN_UI.

SAP SADL和SAP Hybris DTO

CL_CRM_PRODIL_LONGTEXT

要获取更多Jerry的原创文章,请关注公众号"汪子熙":
SAP SADL和SAP Hybris DTO