摘要:如何設計一款Java框架?本文將通過簡單的框架案例來演示框架的工作原理。一起來學習下。
也許你會好奇框架是如何工作的?本文將通過一款簡單的框架案例來演示框架的工作原理。
框架目標
首先,我們要明確爲什麼需要框架(除了當作庫)?框架的目標是爲了定義一個過程,旨在讓開發者基於個性化需求上實現某些功能。換句話說,框架是可被應用開發者定製的骨架。
在下面的示例中,第3類作爲定義框架的一部分,第4類是用作框架客戶端代碼。
Main.java是框架的整個入口,這一點不能改變。
- //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();
- }
- }
- public abstract class Move {
- public abstract void action();
- }
- public class Human {
- private Move move;
- public Human(Move m){
- this.move = m;
- }
- public void doMove(){
- this.move.action();
- }
- }
不同的“action” 可編譯成不同的目標,比如,在下面的例子中打印輸出“5 miles per hour”,你也可以將其定義爲“50 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!");
- }
- }
結束語:
這裏的示例只演示了一個簡單的模板和Hook工作原理。當然,一個真正的框架要比這個複雜的多,它不僅包含像template-temple之間的關係;還包括非常複雜的進程,比如如何有效地提高性能和編程的可用性。