模板模式

Template method

行为设计模式中的一种,定义一个操作中算法的框架(abstract class),而将一些步骤推迟到子类中,让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。

模板模式_第1张图片

实例 Android AsyncTask

public abstract class AsyncTask

参数含义:
Params :启动任务执行的输入参数
Progress:后台任务执行的进度
Result:后台计算结果的类型

一个异步任务的执行一般包括以下几个步骤:

  1. execute(Params... params),在UI线程中调用此方法,触发异步任务的执行。
  2. onPreExecute(),在UI线程中运行,在后台任务执行前,可以对对UI做一些操作。
  3. onPreExecute(Params... params),在子线程中运行的操作,此方法将接收输入参数并返回结果。在执行过程中可以调用publishProgress(Progress... values)来更新进度信息。
  4. onProgressUpdate(Progress... values),在在后台调用publishProgress(Progress... values)时,在UI线程中运行,可以将进度信息更新到UI组件上。
  5. onPostExecute(Result result),在UI线程上运行,当后台操作结束时,此方法将会被调用,返回值会传递到此方法中

总之,AsyncTask内部封装了onPreExecute 、onPreExecute、onPostExecute这几个逻辑流程,可以根据自己的需要重写方法,可以方便的通过异步任务来完成耗时的操作以及更新UI。

你可能感兴趣的:(模板模式)