白话设计模式-模板方法模式

模板方法模式展示

  • 模板方法作为我最喜欢的设计模式,除了刚开始学的时候觉得很好理解以外,重点是他把很多可以重复的逻辑统一化了,只要将最上层的逻辑抽象出来,构建一个抽象基类,就可以使用了。

  • 场景:早上我们起床出门,这是一件大家统一,基本没有太大区别的事情。我们就可以按照这样子的逻辑抽象出来。

在这里插入图片描述

基本上,就是这样子的套路,至于里面的细节

🤓你用什么牙膏?

🤓你穿什么衣服

🤓你穿什么鞋子

▪️▪️▪️▪️▪️▪️

这些都属于细节,我不关注,你不同的人,就有不同的操作,那我们就可以这么来定义一个Peroson

public abstract class Person {
    
    Person(String name){
        this.name = name;
    }

    protected String name;

    abstract void getUp();

    abstract void brushTooth();

    abstract void dress();

    abstract void wearShoes();

    void getupAndOuting(){//规定的一整套动作
        getUp();
        brushTooth();
        dress();
        wearShoes();
    }

}

然后他的子类,只需要将里面的几个细节方法,给实现就完事了,多·好用!!!

🤵 乔丹,用黑人牙膏刷牙,穿AJ,穿一件T恤。

public class Jordan extends Person{

    Jordan(){
        super("Jordan");
    }

    @Override
    void getUp() {
        System.out.println(name + " getUp");
    }

    @Override
    void brushTooth() {
        System.out.println(name +  " use BlackPerson to Brush");
    }

    @Override
    void dress() {
        System.out.println(name +  " dress Tshirt");
    }

    @Override
    void wearShoes() {
        System.out.println(name +  " wear AJ");
    }
}

👷科比,用佳洁士刷牙,穿Kobe6,穿毛衣

public class Kobe extends Person{

    Kobe(){
        super("Kobe");
    }

    @Override
    void getUp() {
        System.out.println("Kobe get up");
    }

    @Override
    void brushTooth() {
        System.out.println("Kobe use jiajieshi to brush");
    }

    @Override
    void dress() {
        System.out.println("Kobe dress Sweater");
    }

    @Override
    void wearShoes() {
        System.out.println("Kobe wear kobe6");
    }
}

多简单、逻辑又清楚,直接调用,就非常简单

    public static void main(String[]  args){
        Person Jordan = new Jordan();
        Person Kobe = new Kobe();

        Jordan.getupAndOuting();
        Kobe.getupAndOuting();
    }

输出结果

Jordan getUp
Jordan use BlackPerson to Brush
Jordan dress Tshirt
Jordan wear AJ
Kobe get up
Kobe use jiajieshi to brush
Kobe dress Sweater
Kobe wear kobe6

今天的模板方法,简单,实用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值