模版方法模式

package template;

/**
 * @Author Liuyunda
 * @Date 2021/6/17 16:52
 * @Email man021436@163.com
 * @Description: DOTO
 */
abstract class MakeSoup{
    /**
     * @description: 起锅烧油
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    private void qiguoshaoyou(){
        System.out.println("起锅烧油");
    }
    /**
     * @description: 放入食材
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    abstract void fangrushicai();
    /**
     * @description: 放入生命的源泉
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    private void fangrushengmingyuanquan(){
        System.out.println("放入生命源泉");
    }

    /**
     * @description: 等一段时间
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    abstract void dengyiduanshijian();
    /**
     * @description: 完成出锅
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    private void finish(){
        System.out.println("完成出锅");
    }

    /**
     * @description: 给我点个赞(可被继承或重写)
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    public void geiwodiangezan(){
        System.out.println("给达子点个赞");

    }

    /**
     * @description: 钩子方法
     * @param: []
     * @return: void
     * @author: Liuyd
     * @date: 2021/6/17
     */
    public Boolean gouzi(){
        return true;
    }
    public final void template(){
        qiguoshaoyou();
        fangrushicai();
        fangrushengmingyuanquan();
        dengyiduanshijian();
        finish();
        if (gouzi()){
            geiwodiangezan();
        }
    }
}
class babaozhou extends MakeSoup{
    @Override
    void fangrushicai() {
        System.out.println("放入八宝粥食材");
    }


    @Override
    void dengyiduanshijian() {
        System.out.println("等一大会");
    }
}
class pidanshourouzhou extends MakeSoup{


    @Override
    void fangrushicai() {
        System.out.println("放入皮蛋瘦肉粥食材");
    }



    @Override
    void dengyiduanshijian() {
        System.out.println("等一小会");
    }

    @Override
    public Boolean gouzi() {
        return false;
    }
}
public class TemplateMethodDemo {
    public static void main(String[] args) {
        babaozhou babaozhou = new babaozhou();
        babaozhou.template();
        pidanshourouzhou pidanshourouzhou = new pidanshourouzhou();
        pidanshourouzhou.template();
    }
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值