设计模式之模版方法(TemplateMethod)

模版方法 钩子函数 回调函数

在父类里面有一个模版方法,在这个方法里面调用了op1,op2,op3… 在子类里面如果想要改变父类的op1和op2
只需要重写op1和op2,那么这个重写之后的方法,可以在父类里面直接调用的到

例子:
Java AWT里面的Frame类 --> 有setVible方法 --> 自动会调用update和paint方法
Frame的子类只需要实现update和paint方法,重写的方法在父类里面能直接调用的到
在这里插入图片描述

public class Main {
    public static void main(String[] args) {
        F f = new C1();
        // 调用模版方法,子类实现的op1和op2被自动调用
        f.m();
    }

}

abstract class F {
    // 模版方法,调用了op1和op2
    public void m() {
        op1();
        op2();
    }
    // 留给子类去实现
    abstract void op1();
    abstract void op2();
}

// 子类实现父类里面的方法
class C1 extends F {

    @Override
    void op1() {
        System.out.println("op1");
    }

    @Override
    void op2() {
        System.out.println("op2");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值