1. 程式人生 > >IO中的裝飾器模式

IO中的裝飾器模式

包含 java str sequence 輸入 output bytearray stringbu 緩沖區

//可以進InputStream 類 區分為目的和方法兩類

//一般直接子類,都是目的不同的(A類),

// 如FileInputStream, #從文件中獲得字節。
// ByteArrayInputStream #包含一個內存緩沖區,字節從中取出。
// ObjectInputStream #用來恢復被序列化的對象。
// PipedInputStream #管道輸入流,讀取管道內容。多和PipedOutputStream一起用於多線程通信。
// SequenceInputStream #是多種輸入流的邏輯串聯,從第一個輸入流讀取,直到最後一個輸入流。
// StringBufferInputStream #讀取的字節由字符串提供。


// 這裏有一個特殊的子類, FilterInputStream 不作為直接子類使用,而作為父類給其他的裝飾器子類[或者自定義的子類]繼承;
//第二類為 增強的方法類型(增強功能)(B類); 典型的以FilterInputStream 為父類的代表的系列子類,都是裝飾器模式
//(選擇繼承FilterInputStream 可以讓裝飾類更加專註於解決增強功能的問題)
//如BufferedInputStream;
// DataInputStream

//裝飾器的目的,在於減少源類的數量,將A*B的數量改為A+B,這是比繼承的優勢;
//同時使Java類更加有層次性;



//FilterInputStream 典型的裝飾模式類的父類,繼承FilterInputStream 即可實現自己的裝飾器


//即可實現一個裝飾類(eg:BufferedInputStream);

IO中的裝飾器模式