1.抽象超类定义一套算法,算法每个步骤用抽象方法来表示,具体子类实现抽象方法public abstract superClass{//抽象超类public final void method(){//定义一套算法 final 防止子类重写method1();method2();}abstract void method1();//算法步骤abstract void method2();//算法步骤}public class childClass extends superClass{void method1(){//子类实现算法步骤System.out.printlu("method1");}void method2(){System.out.println("method2");}2.钩子(hook)方法:在超类中定义一个具体方法,子类可以覆写他,或者什么都不做public abstract superClass{//抽象超类public final void method(){//定义一套算法 final 防止子类重写method1();if(hook()){method2();}}boolean hook(){//钩子方法,子类可以覆写,也可以用默认的return true;}abstract void method1();//算法步骤abstract void method2();//算法步骤}a.如果某个步骤是必须的就用抽象方法,可选的用hookb.hook可以在让子类根据一些现象对超类的模板方法做出调整。Android Activity 生命周期函数
设计技巧15:模板方法 Template Method 在一个方法中定义一个算法的骨架,而将一些步骤延迟的子类中,实现Ioc
最新推荐文章于 2023-10-11 16:26:02 发布