我在系统中有两个实体的表示。
表示A在整个系统中用作现代的首选实现。
表示B用于满足遗留系统中的怪癖。
我希望在持久化实体时从A到B进行翻译。
我可以使用哪种实施模式?
实现封装翻译功能的“适配器”可能是正确的吗?或者有更好的术语/方式吗?
答案 0 :(得分:0)
您可能希望将适配器与工厂组合,或仅通过正常继承。
从首选实现中提取接口A,然后实现包装类。
public interface A {
<methods>
}
public class PreferredImplementation implements A {
<methods>
}
public class AdaptorForOldClass implements A {
private final OldClass wrapped;
public AdaptorForOldClass(final OldClass toWrap) {
this.wrapped = toWrap;
}
<methods>
}
答案 1 :(得分:0)
我认为您的要求是仅在持久化时将A类映射到B。为此,我认为您可以使用数据传输对象,然后您的持久层可以执行从此DTO到B类的映射。我真的看不到适配器设计模式的使用,除非您有比您更多的要求说明。