2012-08-30 117 views
1

我在系統中有兩個實體表示。這適用於適配器模式嗎?

表示A在整個系統中用作現代的首選實現。

表示B用於迎合遺留系統中的怪癖。

我想從A到B的翻譯發生在堅持實體時發生。

我可以使用什麼模式的實現?

實現封裝翻譯功能的「適配器」可能是正確的嗎?還是有更好的術語/方法?

+0

適配器通常用於調整接口,而不是整個對象,我認爲其中一個工廠模式可能更適合 – Filip

+0

如果它只是爲了堅持我會說存儲庫模式是一個很好的適合 – jgauffin

回答

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> 
} 
0

我認爲你的要求是隻有在堅持它的時候將A類映射到B類。爲此,我認爲你可以使用數據傳輸對象,然後你的持久層可以完成從DTO到B類的映射。除非你有更多的需求,否則我實在看不到使用適配器設計模式。說明。