以Thread为例:可以有两种实现方式
1、Thread t=new MyThread();
public class MyThread extend Thread{
public void run(){};
}
2、Thread t=new Thread(new Task());
基类Thread相当于Engine,其中有一个start方法,通过start调用run方法
run方法可以在Thread设计成抽象类,也可以设计成接口,然后子类通过继承或实现接口的形式实现run方法
现在可以试试先想想接口设计:必 须有个抽象函数,来反向调用到。
可以重复调用该函数,总共调用N次, 每次回传一个Kn值,在由把它们累加 起来。
当然,你也能设计一个新的接口函数, 只呼叫它一次,呼叫时把N值传递下去 给子类别。由子类别回传N项数据,例如从 数据库里读取N笔数据并回传给。
反正,接口函数的制定权就掌控于你(架構 師)的手中,开发者会配合你的。
public abstract class Counter {
public int run(){
1
2
3
4
5
6
7
int N = getCount();
int sum = 0;
for(int i=1; i<=N; i++) {
sum += onItem(i);
}
return sum;
}
public int getCount() {
return 6;
}
protected abstract int onItem(int k);
}
public class myCounter extends Counter{
@Override protected int onItem(int k) {
1
return bonus[k-1];
}
private int bonus[] = {100, 300, 100, 300, 100, 300 };
}