2012-12-06 68 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了解有关包装的详细讨论