如何設計一款Java框架?


摘要:如何設計一款Java框架?本文將通過簡單的框架案例來演示框架的工作原理。一起來學習下。

也許你會好奇框架是如何工作的?本文將通過一款簡單的框架案例來演示框架的工作原理。

框架目標

首先,我們要明確爲什麼需要框架(除了當作庫)?框架的目標是爲了定義一個過程,旨在讓開發者基於個性化需求上實現某些功能。換句話說,框架是可被應用開發者定製的骨架。

在下面的示例中,第3類作爲定義框架的一部分,第4類是用作框架客戶端代碼。

Main.java是框架的整個入口,這一點不能改變。

  1. //imagine this is the entry point for a framework, it can not be changed  
  2. public class Main {  
  3.     public static void main(String[] args) {  
  4.         Human h = new Human(new Walk());  
  5.         h.doMove();       
  6.     }  
  7. }  
Move.java是Hook。該Hook允許開發者可根據自己的需求來定義/擴展功能。

  1. public abstract class Move {  
  2.     public abstract void action();  
  3. }  
Human.java是個模板,用來映射框架的工作原理。

  1. public class Human {  
  2.     private Move move;  
  3.    
  4.     public Human(Move m){  
  5.         this.move = m;  
  6.     }  
  7.    
  8.     public void doMove(){  
  9.         this.move.action();  
  10.     }  
  11. }  
這款簡單的框架允許並要求開發者擴展“Move” 類。實際上,在這款簡單的框架中,action()方法是開發者唯一能更改的地方。

不同的“action” 可編譯成不同的目標,比如,在下面的例子中打印輸出“5 miles per hour”,你也可以將其定義爲“50 miles per hour”。

  1. public class Walk extends Move {  
  2.    
  3.     @Override  
  4.     public void action() {  
  5.         // TODO Auto-generated method stub  
  6.         System.out.println("5 miles per hour - it is slow!");  
  7.     }  
  8. }  

結束語:

這裏的示例只演示了一個簡單的模板和Hook工作原理。當然,一個真正的框架要比這個複雜的多,它不僅包含像template-temple之間的關係;還包括非常複雜的進程,比如如何有效地提高性能和編程的可用性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章