主动型VS被动型API

主动还是被动都是相对于基类来讲的,如果是基类定义主动来调用子类那么这个API就叫主动API.如果基类的的API被子类主动的调用那么这个API就叫被动API

API这个名词,有3个密切关联的动词:

定义(Define)

实现(Implement)

呼叫(Invoke or Call)

根据这3个角度把API分为主动和被动两种.

理解:被动型API应该是父类不会让子类进行修改或者复写的API

主动型API应该是父类不清楚子类需要怎么做,让子类自己去做的API

上面的理解也可以从语法上来讲主动型是抽象函数或者虚函数/纯虚函数。而被动型的API应该是不需要复写或者父类里面实现的函数(C++,父类实现的函数的从道理上来子类是不应该复写的)。

可以理解为系统有自己的一个流程,那么app只需要实现父类里面的hook函数,一切的流程都让父类来调用。

Task extends Runnable

new Thread(new Task()).start()

class Task extends Thread;

thread = new Task();

thread.start()

class TaskThread extends Thread{

@Override

public void run() {

    // TODO Auto-generated method stub

    System.out.println("run.........");

}

}

public class test4 {

public static void main(String[] args) {

// TODO Auto-generated method stub

    Thread thread = new TaskThread();

    thread.start();

}

}

results matching ""

    No results matching ""