前言
裝飾設計模式系列文章
裝飾設計模式(一) - 吃飯小示例
裝飾設計模式(二) - RecyclerView添加頭部和底部
裝飾設計模式(三) - 源碼中用到的裝飾設計模式
1. 概述
前邊兩節(jié)我們講解了裝飾設計模式的定義停撞、寫了裝飾設計模式的小示例 - 吃飯小示例档插、RecyclerView添加頭部和底部债查,那么這一節(jié)我們就主要來看下省艳,在源碼中所用到的裝飾設計模式亲茅。
2. 源碼中用到的裝飾設計模式
1>:ListView的 Adapter 源碼回铛;
2>:ContextWrapper源碼:
把Context傳遞過來,用ContextWrapper包裹以下克锣;
3>:IO的輸入輸出流茵肃;
/**
* Email: 2185134304@qq.com
* Created by Novate 2018/5/12 20:03
* Version 1.0
* Params:
* Description:
*/
public class MainActivity extends AppCompatActivity {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try {
FileReader fileReader = new FileReader("xxx.file") ;
// FileReader只能讀取單個
// fileReader.read() ;
// BufferedFileInputStream、BufferedFileOuputStream高效字節(jié)流
BufferedFileInputStream bis = new BufferedFileInputStream(new FileInputStream())袭祟;
// 使用BufferedReader 把 FileReader包裝之后验残,最終操作還是 FileReader
BufferedReader br = new BufferedReader(fileReader) ;
// 包裝之后 ,就變得強大了巾乳,可以讀一行 您没,
br.readLine() ;
} catch (Exception e) {
e.printStackTrace();
}
}
}
比如上邊的BufferedFileInputStream、BufferedFileOutputStream高效字節(jié)流胆绊,都是采用裝飾設計模式的氨鹏,其中Buffered只是起高效作用,真正的讀寫文件還是里邊的FileInputStream或者FileOutputStream压状。
代碼已上傳至github:
https://github.com/shuai999/Architect_day11.git