你知道钩子Hook吗

版权声明:话不在多,在于精 https://blog.csdn.net/qq_29857681/article/details/88416106

what

钩子,本质就是一个方法。(不同的场景对钩子的定义不同)

windows 的消息处理中,钩子是一个监听器的回调函数

模板方法模式中,通过继承的方式来决定一个方法是否执行,钩子是这个用于判断的抽象方法

why

用处:当你在设计时有一个方法是根据子类的具体实现判断其是否执行时,可以将该判断方法设置为钩子方法

场景:当订单满足100元时,免邮费

how

public abstract class OrderCost {
    protected abstract boolean isFreePostage();
    public abstract void addPostage();
    public abstract void totalCost();
    public void template() {
        
        if (!isFreePostage()) {
            addPostage();
        }
        totalCost();
    }
}

isFreePostage() 就是钩子方法

子类可以通过扩展钩子方法来增加额外的功能。

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/88416106