java设计模式之模板方法模式

本文介绍了模板方法设计模式的概念及其实现方式。通过定义一个操作中算法的骨架,并将某些步骤延迟到子类中实现,使得子类可以在不改变算法结构的情况下重定义算法的某些特定步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java设计模式参考文章:
Java设计模式实战23种设计模式介绍以及在Java中的实现Java设计模式 Java经典设计模式之五大创建型模式


## 定义 ##

  • 定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
  • 处理某个流程的骨架代码已经具备, 但其中某节点的具体实现暂不确定, 此时可采用模板方法, 将该节点的代码实现转移给子类完成. 即: 处理步骤在父类中定义好, 具体实现延迟到子类中定义.

    代码举例

/**
 * @author bwx
 * @date 2017/11/29
 * 抽象模板
 */
public abstract class MakeCar {
    public abstract void makeHead();

    public abstract void makeBody();

    public abstract void makeTail();

    public void make() {
        this.makeHead();
        this.makeBody();
        this.makeTail();
    }
}

/**
 * @author bwx
 * @date 2017/11/29
 * 具体操作,延迟到子类实现
 */
public class MakeBus extends MakeCar {
    public void makeHead() {
        System.out.println("bus:makeHead");
    }

    public void makeBody() {
        System.out.println("bus:makeBody");
    }

    public void makeTail() {
        System.out.println("bus:makeTail");
    }
}

/**
 * @author bwx
 * @date 2017/11/29
 * 模板方法模式
 */
public class Main {
    public static void main(String[] args) {
        MakeCar bus = new MakeBus();
        bus.make();
    }
}

## 优点 ##

  • 可以通过在抽象摸吧能定义模板方法给出成熟的算法步骤,同时又不限制步骤的细节,具体模板实现算法细节不会改变整个算法的骨架。
  • 在抽象模板模式中,可以通过钩子方法对某些步骤进行挂钩,具体模板通过钩子可以选择算法骨架中的某些步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值