美文网首页
设计模式-模板

设计模式-模板

作者: ZjyMac | 来源:发表于2018-05-07 13:56 被阅读0次

一,模板模式详解

  • 概念
    模板方法通过定义一个算法骨架,而将算法中的步骤延迟到子类,这样子类就可以复写这些步骤的实现来实现特定的算法

  • 使用场景
    (1)多个子类有共有的方法,并且逻辑基本相同时
    (2)重要,复杂的算法,可以把核心算法设计为模板方法
    (3)重构时

  • UML

    image.png
  • 代码示例

public abstract class AbstractWork {
    protected void getUp() {
        Log.e("zjy", "起床");
    }

    protected abstract void goToWork();

    protected abstract void work();

    protected abstract void getOffWork();

    public final void newDay() {
        getUp();
        goToWork();
        work();
        getOffWork();
    }

}
public class BossWork extends AbstractWork{
    @Override
    protected void goToWork() {
        Log.e("zjy", "开车上班");
    }

    @Override
    protected void work() {
        Log.e("zjy", "分配员工");
    }

    @Override
    protected void getOffWork() {
        Log.e("zjy", "开车下班");
    }
}

public class StaffWork extends AbstractWork{
    @Override
    protected void goToWork() {
        Log.e("zjy", "公交上班");
    }

    @Override
    protected void work() {
        Log.e("zjy", "处理工作");
    }

    @Override
    protected void getOffWork() {
        Log.e("zjy", "公交下班");
    }
}
  BossWork bossWork = new BossWork();
        bossWork.newDay();
        StaffWork staffWork = new StaffWork();
        staffWork.newDay();

二,Android中的实际运用

  • Activity&&Fragment
    生命周期方法采用模板模式
  • AsyncTask
    image.png

相关文章

网友评论

      本文标题:设计模式-模板

      本文链接:https://www.haomeiwen.com/subject/acdscftx.html