設計模式---模板方法模式和AsyncTask的原始碼分析
阿新 • • 發佈:2018-12-12
定義:定義一個操作中的方法的框架,將這些方法的具體的實現延遲到子類中實現, 使得子類能夠不改變演算法的結構就能重新定義演算法的內容。也就是流程封裝。 使用場景:程式碼執行的流程是固定的,也就是我們常用的將各個方法抽取的到父類中,然後通過鉤子函式進行約束子類中的行為。我們常用的BaseActivity,BaseFragment等都是使用這種設計模式。 優點:封裝不變的部分,擴充套件可變的部分。提取公共的方法,方便進行維護。 缺點:可能影響程式碼的閱讀。
AsyncTask的原始碼分析 1.使用 2.初始化構造器 這裡傳遞的引數是null 因此mHandler被賦值為getMainHandler(), 並建立WorkerRunnable和FutureTask類。 在WorkerRunnable中的call()方法中呼叫doInBackground()方法。這個方法可以由使用者自己實現。然後呼叫了postResult(result)方法,傳送handler。