设计模式java-01.模板模式

模板模式是类的行为模式,准备一个抽象类,将部分逻辑以具体的构造函数实现,然后声明一些抽象方法来迫使子类来实现剩余的逻辑,不同的子类可以用不同的方式来实现这些剩余方法,从而对剩余逻辑有不同的实现。
即可以在抽象类中规定逻辑的骨干方法,而不同的类中可以有不同的方式实现这些骨干方法。这就是模板模式的用意。

下面以一个简单的例子来介绍模板模式:
假设汽车,我们用启动和关闭来描述所有的汽车,我们可以定义下面的模板类:

public abstract class Car {

    public abstract void start();

    public abstract void stop();

    public void action(){
        this.start();
        this.stop();
    }

}

而宝马车有自己的启动方式和关闭方式,宝马车可以有自己的实现,我们可以这么定义:

public class Bwm extends Car{
    public void start(){
        System.out.println("this is bwm start method!");
    }

    public void stop(){
        System.out.println("this is bwm stop method!");
    }
}

而奔驰的启动和关闭方式又不太一样,我们可以定义奔驰的实现,我们可以这么定义:

public class Benz extends Car{

    public void start(){
        System.out.println("this is benz start method!");
    }

    public void stop(){
        System.out.println("this is benz stop method!");
    }
}

我们来测试下我们的模板方式是否可以正常使用:

public class TestTemplate {

    public static void main(String[] args){
        Car bwmCar = new Bwm();
        bwmCar.action();

        System.out.println("================================");

        Car benzCar = new Benz();
        benzCar.action();
    }
}

打印的输出结果:

this is bwm start method!
this is bwm stop method!
================================
this is benz start method!
this is benz stop method!

很显然,这里的模板类Car取到了规定框架的作用,宝马和奔驰可以在这个框架下做各自的实现。这大概是模板方式的好处了吧。

猜你喜欢

转载自blog.csdn.net/sukiyou_xixi/article/details/78997426