裝飾器模式在原始碼中應用的非常多,其中在 JDK 中體現最明顯的類就是與 I/O 相關的類,如 BufferedReader、InputStream、OutputStream 及它們的子類。
下面以 InputStream 為例進行講解。
-
FileInputStream 是 InputStream 的子類,用來讀取檔案位元組流
-
BufferedInputStream 是 InputStream 的子類 FilterInputStream 的子類,為可快取的位元組流
-
DataInputStream 也是FilterInputStream 的子類,可直接讀取 Java 基本型別的位元組流
下面為 InputStream 的類圖,如下所示。