模板方法设计模式

设计模式——模板方法

  • 抽象类(AbstratClass):定义模板方法,定义算法骨架(定义抽象方法)
  • 具体类(ConcreteClass):实现抽象类种的抽象方法,从而实现完整的算法

代码实现

public class TemplateMethod01 {

    static abstract class AbstractSpouse{
        //抽象类定义整个夫妻外出的流程骨架 他们出行的模板就是  1,准备出们  2,然后选择交通工具  所以可以定义一个模板去执行这个操作,具体的操作需要在实现类种去定义
        public void goOut(){
            ready();
            travelMode();
        }

        //出行前的准备
        protected abstract void ready();
        //出行的方式
        protected abstract void travelMode();
    }

    /**
     * Man的类  需要对自己的 ready travelMode  去实现
     */
    static class Man extends AbstractSpouse{
        @Override
        protected void ready() {
            System.out.println("穿好衣服...");
        }

        @Override
        protected void travelMode() {
            System.out.println("去到车库开车...");
        }
    }

    /**
     * Wife的类  需要对自己的 ready travelMode  去实现
     */
    static class Wife extends AbstractSpouse{

        @Override
        protected void ready() {
            System.out.println("洗脸,化妆1个小时,选衣服半个小时...");
        }

        @Override
        protected void travelMode() {
            System.out.println("坐老公的车...");
        }
    }

    public static void main(String[] args) {
        Man man = new Man();
        man.goOut();

        Wife wife=new Wife();
        wife.goOut();
    }
}

在这里插入图片描述

分析:

因为在夫妻出门的这个操作上,就有准备和出门的方式,这个时候我们的就可以定义一个抽象的类 AbstractSpouse 然后定义goOut方法在这个方法种先执行的是ready方法然后是travelMode方法,这个两个方法都需要设置为抽象方法(继承这个抽象类必须要实现这两个方法)。在丈夫和妻子类种对于ready和travelMode的具体的实现是不同的,但是我们对于创建Man 和Wife 对象调用goOut方法的时候goOut方法里执行的ready和travelMode方法是由Man和Wife类具体实现的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值