手寫框架首誤
框架的目的
首先我們為什麼需要一個框架呢?相對於知識一個普通的庫呢?框架的目的是定義一個讓開發者實現真正的基於工業需求的方法的過程,換句話說,框架定義骨架,當需要用這個框架的時候開發者填充肉體,
最簡單的框架DEMO
看下面的示例,前面定義的3個類作為框架的一部分,第四個類是框架的客戶端程式碼。
Main.java 是框架的入口,這個是可以被修改的。
[java] view plain copy
//imagine this is the entry point for a framework, it can not be changed
public class Main {
public static void main(String[] args) {
Human h = new Human(new Walk());
h.doMove();
}
}
Move.java 是一個鉤子(回撥鉤子,回撥函式),鉤子函式是一個開發者可以自定義基於具體需求的 可定義/可繼承的方法。
public abstract class Move {
public abstract void action();
}
Human.java 是一個模板,能夠影響框架的工作方式。
public class Human {
private Move move;
public Human(Move m){
this.move = m;
}
public void doMove(){
this.move.action();
}
}
這個簡單的框架允許和需要開發者繼承Move類。事實上,在這個簡單的框架,action()方法是唯一開發者能夠修改的方法。
在實現的內部,不同的"action"能夠被用於不同的需求,E.g下面的方法,列印“5 miles per hour”
public class Walk extends Move {
@Override
public void action() {
// TODO Auto-generated method stub
System.out.println("5 miles per hour - it is slow!");
}
}
總結:
這個示例,展示一個簡單的模板和鉤子工作模式,一個真正的框架比這個複雜很多
待完善********