便利性(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;