模板方法

模板方法的模式,我自己的理解就是抽取基类的一个过程。比如说现在要生产一批汽车,我们只要造出一个汽车的模型就可以造其他的汽车。在Android中向Base类的抽取等。具体下图
这里写图片描述

大体分为以下几步:
1.找到类的公共方法,抽取抽象类。
2.继承抽象类,执行自己的方法。
3.如果有公共的方法,可以写在抽象类中。

一.抽取汽车的公共方法

public abstract class BaseCar {
    /**
     * 启动方法
     */
    protected abstract void start();

    /**
     * 暂停
     */
    protected abstract void stop();

    /**
     * 车辆的喇叭
     */

    protected abstract void alarm();

    /**
     * 让汽车运行起来
     */
    public void run() {
        this.start();
        this.alarm();
        this.stop();
    }

}

二.实现抽象类的方法

汽车一:

public class Car1 extends BaseCar {
    private final String TAG = "Car1";
    @Override
    protected void start() {
        Log.e(TAG, "启动");
    }

    @Override
    protected void stop() {
        Log.e(TAG, "停止");
    }

    @Override
    protected void alarm() {
        Log.e(TAG, "鸣笛");
    }

}

汽车二:

public class Car2 extends BaseCar {
    private final String TAG = "Car2";

    @Override
    protected void start() {
        Log.e(TAG, "启动");
    }

    @Override
    protected void stop() {
        Log.e(TAG, "启动");
    }

    @Override
    protected void alarm() {
        Log.e(TAG, "启动");
    }
}

三.如果有重复的,写在抽象类中

 /**
     * 让汽车运行起来
     */
    public void run() {
        this.start();
        this.alarm();
        this.stop();
    }

这段代码在抽象类中,直接调用本类对象就可以。

四.总结

模板方法优点:
1.提取公共部分代码,便于维护
2.基本方法是由子类实现的,子类可以通过扩展的方式增加功能。
模板方法缺点:
抽象类,实现最基本的抽象方法,在复杂的项目中可能,看起来比较有难度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值