便利性(Convenience): 你可能需要由Java平台提供的那些实现之外的附加便利实现。例如,你可能经常需要一个代表单独键-值映射的不变 Map 对象、或代表一个连续的整数局域的 List 对象或者其他什么东西。
适配器(Adapter): 假设你正在使用某些有着自己非凡的collectioon API 的早期API。你可以编写一个适配器(adapter) 实现,它使那些 对象集 可以在 Java Collections Framework 上进行操作。一个适配器实现是一个薄的虚饰板,它可以包装一个类型的对象,并使其表现得象另一个类型的对象。这是通过将后一类型的操作转化到前一类型的结果。
如何编写一个定制实现
借助Java平台上的抽象实现(abstract implementations) 来编写定制实现出奇地简单。抽象实现是 核心 对象集 接口 的骨干实现,它明显地是为便于定制实现的编写而设计的。我们以一个例子开始,以下是一个 Arrays.asList的实现:
public static List asList(Object[] a) {
return new ArrayList(a);
}
PRivate static class ArrayList extends AbstractList
implements java.io.Serializable
{
private Object[] a;