適配器模式:將一個類的接口轉換成客戶指望的另外一個接口,讓本來不兼容的接口能夠合做無間。 //把FileInputStream文件字節流適配成InputStreamReader字符流來操做文件字符串。
FileInputStream fileInput = new FileInputStream(file);
InputStreamReader inputStreamReader = new InputStreamReader(fileInput);
- 1.適配器對象實現原有接口
- 2.適配器對象組合一個實現新接口的對象
- 3.對適配器原有接口方法的調用被委託給新接口的實例的特定方法(重寫舊接口方法來調用新接口功能。)
- 好比,在io流中,InputStreamReader類繼承了Reader接口,但要建立它必須在構造函數中傳入一個InputStream的實例,InputStreamReader的做用也就是將InputStream適配到Reader。InputStreamReader實現了Reader接口,而且持有了InputStream的引用。這裏,適配器就是InputStreamReader類,而源角色就是InputStream表明的實例對象,目標接口就是Reader類。
- 適配器模式主要在於將一個接口轉變成另外一個接口,它的目的是經過改變接口來達到重複使用的目的;而裝飾器模式不是要改變被裝飾對象的接口,而是保持原有的接口,可是加強原有對象的功能,或改變原有對象的方法而提升性能。