2012-12-06 105 views
1

我知道爲什麼要使用接口和包裝。什麼是接口和包裝?

但我不知到名字的包裝類......(「誰是包裝?」我看我不知道好...)

public Interface A { 
    void method(); 
} 

public Class B implements A { 
    void method() { 
     doSomething(); 
    } 
} 

我對兩件事情混爲一談......

  1. 包裝是類,所以B爲包裝。

  2. 我們通常會看到(或者認爲?)a.method()而不是b.method(),所以A是包裝。

什麼是包裝?

A? B'

而且......

如何名稱中使用 「包裝」 或 「W」 A,B好?

A,AWrapper?或B,BWrapper?或其他...??

回答

3

A是一個接口。 BInterface的具體實現。從您提供的代碼中無法對他們說任何事情。

A Wrapper通過添加或簡化包裝類/ API的功能,「包裝」了另一個類或API的功能。例如,來自Java的Primitive Wrappers將有用的方法(如doubleValuecompareTo)添加到Java基元。您正在考慮Polymorphism

這就是讓我們可以說這樣的話:

A a = new B(); 
B b = new B(); 
List<A> stuffs = new ArrayList<A>(); 
stuffs.add(b); 

旁註:

InterfaceClass不準用Java獲利。您的聲明應該如下所示:

public interface A { 
    // methods 
} 

public class B implements A { 
    // methods 
} 
+0

謝謝!你知道其他的例子(不是原始包裝)嗎? – ChangUZ

1

您的示例中的A或B都不能稱爲包裝。 A和B之間的關係是Inheritance。 A Wrapper類通常contains一個或多個Wrappee對象。適配器和外觀模式是包裝的很好例子。

請參閱this瞭解有關包裝的詳細討論