我在系统中有两个实体的表示。
表示 A 在整个系统中用作现代的首选实现。
表示 B 用于满足遗留系统中的怪癖。
我希望在持久化实体时发生从 A 到 B 的翻译。
我可以为此使用什么实现模式?
实现一个封装翻译功能的“适配器”可能是正确的吗?还是有更好的术语/方式?
我在系统中有两个实体的表示。
表示 A 在整个系统中用作现代的首选实现。
表示 B 用于满足遗留系统中的怪癖。
我希望在持久化实体时发生从 A 到 B 的翻译。
我可以为此使用什么实现模式?
实现一个封装翻译功能的“适配器”可能是正确的吗?还是有更好的术语/方式?
您可能希望将适配器与工厂结合起来,或者只是通过普通继承。
从首选实现中提取接口 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>
}
我认为您的要求是仅在持久化 A 类到 B 类时才将其映射。为此,我认为您可以只使用数据传输对象,然后您的持久层可以执行从该 DTO 到 B 类的映射。我真的看不到适配器设计模式的使用,除非您有比您有更多的要求表示。