2013-04-13 41 views
1

我是新來設計模式主題領域,並渴望瞭解設計模式的實現變化。我在網上的衆多教程中看到了適配器設計模式中適配器類的以下結構。 (以下代碼示例是從維基百科中提取)Java-適配器設計模式implmentation變體

public class ClassAFormat1 implements StringProvider { 
    private ClassA classA = null; 

    public ClassAFormat1(final ClassA A) { 
     classA = A; 
    } 

    public String getStringData() { 
     return format(classA.toString()); 
    } 
} 

如果我沒有錯誤,ClassA的是適配者和StringProvider是在本實施例中(這裏沒有提供的類)的目標。

我已經通過在目標方法中定義和初始化適配器類,對上述代碼做了一些小調整。我知道它很奇怪,但想知道它是否仍屬於適配器設計模式。

public class ClassAFormat1 implements StringProvider { 



    public String getStringData() { 

       ClassA classA = new ClassA(); 
     return format(classA.toString()); 
    } 
} 

上面的適配器類是否根據適配器設計模式的指導方針編寫的?

謝謝。

+0

按照此鏈接(它的.Net,但有用的): [http://www.dofactory.com/Patterns/PatternAdapter.aspx](http://www.dofactory.com/Patterns/PatternAdapter.aspx) – united

回答

2

適配器的目的是有能力對待對象,就像它們是其他類的實例一樣。
在您提供的示例中,ClassA的實例可以簡單地通過使用new ClassAFormat1(a)來「處理」爲StringProvider,其中a的類型爲ClassA

隨着您添加的更改,您不能使用ClassA的不同實例並使其行爲如StringProvider。在這種情況下ClassAFormat1不能從ClassAStringProvider適配器使用(在SENCE,你不能給它任何實例ClassA並使其行爲像一個StringProvider

+0

謝謝你的回覆.... 現在我明白了區別... – Pathfinder92