Java设计模式---模版模式

目录

模版模式

1.抽象类定义算法骨架

2.具体子类实现可变部分

3.客户端使用方式


模版模式

        描述:通过模板方法按照规定好的流程执行。

  • 固定流程控制:抽象类中的模版方法定义了不可变的算法骨架,使用final修饰防止子类修改流程。
  • 可变部分抽象化:将可能变化的部分声明为抽象方法,由子类实现具体行为。
  • 代码复用:公共行为在抽象类中实现,避免子类重复代码。

下面通过代码体现模版模式的结构和特点:

1.抽象类定义算法骨架

        在抽象类中定义一个模板方法(执行流程不希望被改变,用final关键字修饰,该方法不被子类继承)。

public abstract class AbstractHome {

    //定义一个模板方法,用final关键字修饰,该方法不被子类继承
    public  final  void  homeFrameWork()
    {
        this.work();
        this.goHomeType();
        this.goHome();
    }

    public  void  work()
    {
        System.out.println("工作到点下班");
    }

    //回家的交通工具不一样,抽象方法,由子类实现
    public  abstract  void   goHomeType();

    public  void    goHome()
    {
        System.out.println("到家了");
    }
}

2.具体子类实现可变部分

public class HuaweiCar  extends AbstractHome {
    @Override
    public void goHomeType() {
        System.out.println("乘坐华为汽车回家");
    }
}
public class XiaomiCar  extends AbstractHome {
    @Override
    public void goHomeType() {
        System.out.println("乘坐小米汽车回家");
    }
}

3.客户端使用方式

public class Test {

    public static void main(String[] args) {
        AbstractHome  ah  = new HuaweiCar();
//        AbstractHome  ah  = new XiaomiCar();

        ah.homeFrameWork();
    }

}

运行效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值