设计模式十一:模板方法模式(Template Method Pattern)

目录

相关文章:

一、详解

1、概念

2、使用场景

3、UML结构图分析

4、实际代码分析

5、优点

二、在Android中的实际运用


相关文章:

Android的设计模式-模板方法模式

template   美 [ˈtemplət]  模板方法模式;模板方法;样版;属性;板型

temporary 美 [ˈtempəreri]  短暂的;暂时的;临时的

一、详解

1、概念

定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。

  • 模板方法模式属于行为型模式。
  • 模板方法模式主要是用来定义一套流程下来的固定步骤,而具体的步骤实现则可以是不固定的。

2、使用场景

  • a、多个子类有公有的方法,并且逻辑基本相同时
  • b、重要、复杂的算法,可以把核心算法设计为模板方法
  • c、重构时,模板方法模式是一个经常使用的模式

3、UML结构图分析

4、实际代码分析

/**
 * 抽象方法基类
 */
public abstract class AbstractWork {
    protected void getUp(){
        System.out.println("起床啦!");
    }

    protected abstract void goToWork();

    protected abstract void work();

    protected abstract void getOffWork();

    /**
     * Template Method 大家都拥有共同的执行步骤
     */
    public final void newDay(){
        getUp();
        goToWork();
        work();
        getOffWork();
    }
}

public class BossWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("老板开车去上班");
    }

    @Override
    protected void work() {
        System.out.println("老板分配工作给员工");
    }

    @Override
    protected void getOffWork() {
        System.out.println("老板开车下班");
    }
}

public class StaffWork extends AbstractWork {
    @Override
    protected void goToWork() {
        System.out.println("员工坐地特去上班");
    }

    @Override
    protected void work() {
        System.out.println("员工开始工作");
    }

    @Override
    protected void getOffWork() {
        System.out.println("员工坐地特下班");
    }
}


public class Client {
    public static void main(String[] args) {
        BossWork bossWork = new BossWork();
        bossWork.newDay();

        System.out.println("===========================");

        StaffWork staffWork = new StaffWork();
        staffWork.newDay();
    }
}

5、优点

二、在Android中的实际运用

1、activity的声明周期方法:onCreate、onStart、onResume
2、AsyncTask

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值