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

模板方法设计模式是一种常用的软件设计模式,它利用Java的继承机制来封装不变部分,扩展可变部分。在AbstractClass抽象类中定义了基本方法(由子类实现)和模板方法(调度基本方法)。子类Template继承并实现这些基本方法,从而定制自己的行为。这种模式提高了代码的复用性和可维护性,控制了算法流程,确保了行为的一致性。
摘要由CSDN通过智能技术生成

模板方法设计模式

模板方法模式非常简单,仅仅使用了 java 的继承机制,但它是一个应用非常广泛的模板其中 AbstractClass 叫做抽象模板,它的方法分为两类 基本方法模板方法

  • 基本方法
    基本方法也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。
  • 模板方法
    可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度。(一般为了防止恶意操作方法都加上 final 关键字,不允许被重写。
  1. 首先创建一个抽象魔板类
public abstract class AbstractClass{
     //基本方法
    protected abstract void domethod1();
    //基本方法
    protected abstract void domethod2();
    //模板方法
    public final void templateMethod(){
        /*
         *调用基本方法完成相关逻辑
         */
        this.domethod1();
        this.domethod2();
    }
    
}

//补充 可以在抽象类中添加个钩子方法。控制算法流程。
  1. 创建一个子类集成抽象类。重写方法;
public class Template extends AbstractClass {
    @Override
    protected void domethod1() {
        System.out.println("Template domethod1");
    }

    @Override
    protected void domethod2() {
        System.out.println("Template domethod2");

    }
}

抽象模板中的基本方法尽量设计为 protected 类型,符合迪米特法则,不需要暴露的属性活方法尽量不要设置为 protected 类型。

模板方法的优点

  • 封装不变部分,扩展可变部分。
  • 提起公共部分代码,便于维护。
  • 行为由父类控制,子类实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值