设计模式一:模板设计模式

1、概述

它的应用场景是同一个接口的不同实现类存在公共代码,这样就可以用模板方法模式将不变部分封装在模板类中,将可变部分作为抽象方法留给子类中,从而复用顶级逻辑的代码。

2、应用场景

1、 使用模板方法模式统一调用外部服务接口

2、 使用模板方法模式对外提供的统一接口服务

3、 使用模板方法模式实现通知服务

3、案例

我们可以将固定流程写到父类中,不同的地方就定义成抽象方法,让不同的子类去重写

// 司机开车的模板类
public abstract class Driver {
    public void go() {
        System.out.println("开门");
        System.out.println("点火");
        // 开车姿势不确定?定义为抽象方法
        ziShi();
        System.out.println("刹车");
        System.out.println("熄火");
    }

    public abstract void ziShi();
}

现在定义两个使用模板的司机:

public class NewDriver extends Driver {

    @Override
    public void ziShi() {
        System.out.println("新司机双手紧握方向盘");
    }
}

public class OldDriver extends Driver {
    @Override
    public void ziShi() {
        System.out.println("老司机右手握方向盘左手抽烟...");
    }
}

编写测试类

public class Demo02 {
    public static void main(String[] args) {
        NewDriver nd = new NewDriver();
        nd.go();

        OldDriver od = new OldDriver();
        od.go();
    }
}

//运行结果
/*
开门
点火
新司机双手紧握方向盘
刹车
熄火
开门
点火
老司机右手握方向盘左手抽烟...
刹车
熄火

*/

可以看出,模板模式的优势是,模板已经定义了通用架构,使用者只需要关心自己需要实现的功能即可!非常的强大!

posted @ 2022-02-12 17:31  火烧云Z  阅读(117)  评论(0)    收藏  举报