给定一个ReceiptValidator接口和一个返回多个数据的GoogleReceiptValidator实现,我应该把ReceiptValidatorResult放在哪里?
由于它与ReceiptValidator相关,因此可以将其放置在域层中。
但是,如果另一个AppleReceiptValidator有不同的数据怎么办?ReceiptValidatorResult 也应该是一个接口吗?
这取决于您的“域”以及收据的使用方式。一般来说,如果您有一个服务位于应用程序的边界上,就像我假设的 GoogleReceiptValidator 那样,您希望它返回一些对您的域有意义的东西,例如“收据”对象。如果它是域服务(不在边界处),您仍然希望返回对您的域有意义的东西,例如“ValidReceipt”或“InvalidReceipt”(如果它无效)。
如果另一个收据验证器有不同的数据,你必须问自己是否关心这些数据。如果您不关心数据而只关心它的有效性,那么您可以像上面一样返回(validReceipt 或 InvalidReceipt)。如果您确实关心数据,则必须通过工厂提取您关心的内容并返回对您的域有意义的对象。
我认为我的回答的底线是,它是 AppleReceipt 还是 GoogleReceipt 的实现细节远没有您的域需要的重要。也就是说,一旦您在域中获取了信息,如果处理得当,您就不必关心它是 applereceipt 还是 googlereceipt。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句