这适用于适配器模式吗?

时间:2012-08-30 08:11:23

标签: design-patterns adapter

我在系统中有两个实体的表示。

表示A在整个系统中用作现代的首选实现。

表示B用于满足遗留系统中的怪癖。

我希望在持久化实体时从A到B进行翻译。

我可以使用哪种实施模式?

实现封装翻译功能的“适配器”可能是正确的吗?或者有更好的术语/方式吗?

2 个答案:

答案 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类的映射。我真的看不到适配器设计模式的使用,除非您有比您更多的要求说明。