Java 设计模式之模板方法模式

模板方法模式,Template Method,就是在父类中定义一个方法A,这个方法里调用了多个其他方法,这些其他方法留给具体子类来实现,然后具体子类只需要调用父类的方法A,就能改变部分实现,这种模板方法模式也叫钩子函数,回调函数。

1、定义抽象类,其中create为模板方法,不能被重写

public abstract class Template {
    public abstract void createWindow();
    public abstract void createDoor();
    public abstract void ground();

    public final void create() {
        createWindow();
        createDoor();
        ground();
    }
}

2、实现类,实现父类中定义的抽象方法

public class WoodenHouse extends Template {
    public void flower() {
        System.out.println("add some flower");
    }
    @Override
    public void createWindow() {
        flower();
        System.out.println("create window");
    }

    @Override
    public void createDoor() {
        System.out.println("create wood door");
    }

    @Override
    public void ground() {
        System.out.println("create wood ground");
    }
}
public class ConcreteHouse extends Template {
    @Override
    public void createWindow() {
        System.out.println("create window");
    }

    @Override
    public void createDoor() {
        System.out.println("create stone door");
    }

    @Override
    public void ground() {
        System.out.println("create stone ground");
    }
}

3、测试

public class Test {
    public static void main(String[] args) {
        Template wood = new WoodenHouse();
        wood.create();
        Template concrete = new ConcreteHouse();
        concrete.create();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值