可扩展的映射设计

时间:2011-12-06 08:49:54

标签: oop design-patterns

我们在这里有一个场景。

ClassA具有一些属性,ClassZ具有与ClassA相同的属性,然后在中间我们有一个映射器,它将属性从ClassZ映射到ClassA,反之亦然。我们没有使用Reflections,我们手动完成(使用classZ.setXXX(classA.getXXX()))。

现在假设我们想要将ClassA扩展到ClassB并添加新属性,我们还将ClassZ扩展到ClassY并在其中添加类似的属性。所以现在我们需要在ClassY和ClassB之间进行映射。

有人可以建议我一个良好的可扩展设计模式来做到这一点。可以使用Decorator完成,也可以使用拦截器?

此致

2 个答案:

答案 0 :(得分:0)

不是设计模式,但绝对可以提供帮助的工具是AutoMapper

它有助于两个对象之间的映射。如果属性名称相似,则将自动配置映射。如果您有一些例外,您可以在一个地方定义它们并在任何地方重复使用。

答案 1 :(得分:0)

我想到的一种方法是使用@Decorators(CDI)。我定义了一个映射装饰器,它首先将调用委托给原始映射器,然后映射新字段