1

我知道为什么要使用接口和包装器。

但是我混淆命名包装类......(“谁是包装?”我知道我不太清楚......)

public Interface A {
    void method();
}

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

我对两件事感到困惑...

  1. Wrapper Class是 class ,所以 B 是 wrapper。

  2. 我们通常看到(或认为?)a.method() 而不是 b.method(),所以 A 是包装器。

什么是包装器?

一个?乙?

和...

如何使用“Wrapper”或“W”命名 A、B 好?

一个,AWrapper?还是 B,BWrapper?还是其他人……?

4

2 回答 2

5

A是一个接口。 B是 的具体实现Interface。从您提供的代码中无法对它们进行任何其他说明。

Wrapper通过添加或简化被包装类/API 的功能来“包装”另一个类或 API 的功能。例如,Java 的Primitive Wrappers添加了有用的方法,例如doubleValuecompareToJava 原语。

您正在考虑多态性

这就是让我们可以说这样的话:

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

边注:

Interface并且Class不允许在 Java 中大写。你的声明应该是这样的:

public interface A {
  // methods
}

public class B implements A {
  // methods
}
于 2012-12-06T03:13:21.477 回答
3

您的示例中的 A 或 B 都不能称为包装器。A 和 B 之间的关系是Inheritance。一个Wrapper类通常是contains一个或多个Wrappee对象。适配器和外观模式是包装器的好例子。

有关Wrappers 的详细讨论,请参阅此内容

于 2012-12-06T09:40:48.377 回答