我知道为什么要使用接口和包装器。
但我混淆了名字包装类...(“谁是包装?”我看到我不太清楚......)
public Interface A {
void method();
}
public Class B implements A {
void method() {
doSomething();
}
}
我对两件事感到困惑......
包装类是类,所以B是包装器。
- 醇>
我们经常看到(或者认为?)a.method()而不是b.method(),所以A是包装器。
什么是包装?
一个?乙
和...
如何使用“Wrapper”或“W”命名A,B好?
A,AWrapper?还是B,BWrapper?或其他人......?
答案 0 :(得分:4)
A
是一个界面。 B
是Interface
的具体实现。从你提供的代码中无法说出任何其他内容。
通过添加或简化包装类/ API的功能,Wrapper“包装”另一个类或API的功能。例如,Java中的Primitive Wrappers将有用的方法(如doubleValue
和compareTo
)添加到Java原语中。
您正在考虑Polymorphism。
这就是我们可以说出的话:
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
}
答案 1 :(得分:2)
您的示例中的A或B都不能称为包装器。 A和B之间的关系是Inheritance
。一个Wrapper
类通常contains
个Wrappee
个对象。适配器和Facade模式是包装器的好例子。
有关Wrappers的详细讨论,请参阅this