目录
1、 主动型 vs.基於被动型 API
1)卡榫函数实现API
2)API的分类
3)回顾历史
4)API =>控制力
2、 结语&复习: 接口与类
1)接口的表示
2)Java的接口表示
1、 主动型 vs.基於被动型 API
1)卡榫函数实现API
2)API的分类
API这个名词,有3个密切关联的动词:
- 定义(Define)
- 实作(Implement)
- 呼叫(Invoke or Call)
根据这3个角度,可将API区分为「主动型」与「被动型」两种:
3)回顾历史
1990年代初的CORBA和Orbix 1995年的COM/DCOM
2001年的.NET
4)API =>控制力
大家都知道,接口(Interface)是双方接触的地方,也是双方势力或地盘的界线。
谁拥用接口的制定权,谁就掌握控制点,就能获得较大的主动权(或称为主导权),而位居强龙地位;而另一方则处于被动地位,成为弱势的一方,扮演地头蛇角色。
5)API的范例 (Android)
// myActivity.java
public class myActivity extends Activity {
@Override public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
Button button = new Button(this);
button.setText("OK");
button.setBackgroundResource(R.drawable.heart);
button.setOnClickListener(this);
setContentView(button);
}
OnClickListener clickListener = new OnClickListener() {
@Override public void onClick(View v) {
String name = ((Button)v).getText().toString();
setTitle( name + " button clicked");
}
};
}
2、 结语&复习: 接口与类
1)接口的表示
在OOP里,将接口定义为一种特殊的类别(Class)
在C++裡,類別包括3種:
1. 一般(具象)類別
-- 所有函數都是具象(內有指令)
2. 抽象(abstract)類別
-- 有一個或多個函數是抽象的(內無指令)
3. 純粹抽象(pure abstract)類別
-- 所有函數都是抽象的
在C++裡,類別包括3種:
1. 一般(具象)類別
-- 所有函數都是具象(內有指令)
2. 抽象(abstract)類別
-- 有一個或多個函數是抽象的(內無指令)
3. 純粹抽象(pure abstract)類別
-- 所有函數都是抽象的
2)Java的接口表示
class Task implements Nunnable{
public void run() {
int sum = 0;
for (int i = 0; i <= 100; i++) sum += i;
System.out.println("Result: " + sum);
}
}
public class JMain {
public static void main(String[] args) {
Thread t = new Thread( new Tasks());
t.start();
System.out.println("Waiting...");
}
}