所以我有一个POJO类,我们称之为:InnerDomainObject。 然后我有一个对象代表这个对象,还有一些字段,用于与不同客户端的通信(它是一个API DTO):OuterDomainObject
因为DTO实际上有所有POJO字段,所以我使OuterDomainObject继承自InnerDomainObject。
现在我需要以某种方式将InnerDomainObject强制转换为OuterDomainObject - >不可能。
我想避免编写迭代遍历所有字段的构造函数。 我想避免编写无用的代码。
我只是希望从InnerDomainOBject的值中创建OuterDomainObject,然后在将其发送到客户端之前添加一些。
这样做的最佳方式是什么?
答案 0 :(得分:0)
您听起来像是在使用Adapter Pattern。您不应该将InnerDomainObject强制转换为OuterDomainObject。你应该使用组合:OuterDomainObject应该保存对InnerDomainObject的引用,这可能会被传递给构造函数。当客户端在OuterDomainObject上调用方法时,如果该方法存在于InnerDomainObject中,则OuterDomainObject应在其InnerDomainObject实例上调用该方法。不要将InnerDomainObject foo
强制转换为OuterDomainObject,只需创建一个新的OuterDomainObject并传入foo
:new OuterDomainObject(foo)
。您需要编写一些简单的胶水代码,但结果非常干净。