让函数有执行顺序-模板方法模式
2018-01-17 18:23
344 查看
我们知道在一般情况下,Android中Activity的生命周期如图所示
执行顺序为onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy(),这个就是模板方法模式的使用之一
我们可以来模拟以下Activity所使用的模板方法模式,具体步骤如下:
SecondActivity
使用如下:
运行结果
这里只是简单地举了个模板方法模式的小例子,我们还可以在不同的实现类加上函数,如登陆函数等等,这样一个模板方法就可以被大范围地使用
执行顺序为onCreate()->onStart()->onResume()->onPause()->onStop()->onDestroy(),这个就是模板方法模式的使用之一
我们可以来模拟以下Activity所使用的模板方法模式,具体步骤如下:
抽象类:定义算法框架,也就是执行顺序
public abstract class AbstractActivity { protected void onCreate() { System.out.println("onCreate()"); } protected void onStart() { System.out.println("onStart()"); } protected void onResume() { System.out.println("onResume()"); } protected void onPause() { System.out.println("onPause()"); } protected void onStop() { System.out.println("onStop"); } protected void onDestroy() { System.out.println("onDestroy"); } public final void work() { onCreate(); onStart(); onResume(); onPause(); onStop(); onDestroy(); } }
实现类
MainActivitypublic class MainActivity extends AbstractActivity { @Override protected void onCreate() { super.onCreate(); System.out.println("This is MainActivity"); } }
SecondActivity
public class SecondActivity extends AbstractActivity { @Override protected void onCreate() { super.onCreate(); System.out.println("This is SecondActivity"); } }
使用如下:
public class Main { public static void main(String[] args) { MainActivity mainActivity = new MainActivity(); mainActivity.work(); SecondActivity secondActivity = new SecondActivity(); secondActivity.work(); } }
运行结果
这里只是简单地举了个模板方法模式的小例子,我们还可以在不同的实现类加上函数,如登陆函数等等,这样一个模板方法就可以被大范围地使用
相关文章推荐
- JavaScript设计模式之桥接模式与IE下事件函数的this指向与执行顺序
- 破坏单例模式之静态方法、静态代码块和构造方法执行顺序
- 按顺序执行多个异步函数的方法
- Java类中各成员及函数方法的执行顺序
- ThinkPHP3.0,模板里面执行函数function的方法
- 黑马程序员__父子类中变量、函数、构造函数的特点、抽象类和模板方法模式
- 关于Java new对象构造方法执行顺序 解释恶汉单例模式死循环问题
- 模板方法模式
- 小话设计模式五:模板方法模式
- 设计模式(10)-----模板方法模式
- 模板方法模式(Template Method)
- 设计模式学习笔记(十八:模板方法模式)
- 设计模式笔记:模板方法
- 从Spring HibernateTemplate模板方法设计模式的实现谈起
- 从Spring HibernateTemplate模板方法设计模式的实现谈起
- 模板方法(Template Method)模式
- js和jquery页面初始化加载函数的方法及先后顺序
- 昨天太晚了,今天教你用Debug模式来分析程序执行顺序
- 大话设计模式(Python版)--模板方法模式
- C++设计模式之模板方法模式