鉤子方法是啥
鉤子顧名思義就是用來掛東西的。那么要掛東西必須有個被掛的東西,要不就是鐵環、要不就是墻的邊沿。所以要能掛住東西必須要有個被勾住的鐵環,要一個鉤子。那么在java中也是同樣的原理,你首先需要一個被掛在的東西,一個掛載的東西。
鉤子的實現方法
是對于抽象方法或者接口中定義的方法的一個空實現,在實際中的應用,比如說有一個接口,這個接口里有7個方法,而你只想用其中一個方法,那么這時,你可以寫一個抽象類實現這個接口,在這個抽象類里將你要用的那個方法設置為abstract,其它方法進行空實現,然后你再繼承這個抽象類,就不需要實現其它不用的方法,這就是鉤子方法的作用。
抽象父類
public abstract class AbstractClass {public abstract boolean isOpen();public final void operating() {if(isOpen()) {System.out.println("鉤子方法開啟");}else {System.out.println("鉤子方法關閉");}}
}
實現類
public class AchieveClass extends AbstractClass {//鉤子方法能掛在到operating能干預到operating業務邏輯@Overridepublic boolean isOpen() {return true;}public static void main(String[] args) {AchieveClass ac = new AchieveClass();ac.operating();}}
只要重寫isOpen就能干預父類方法的業務流程。相當于將isOpen掛載在了父類的operating()中。