如何设计一款Java框架?


摘要:如何设计一款Java框架?本文将通过简单的框架案例来演示框架的工作原理。一起来学习下。

也许你会好奇框架是如何工作的?本文将通过一款简单的框架案例来演示框架的工作原理。

框架目标

首先,我们要明确为什么需要框架(除了当作库)?框架的目标是为了定义一个过程,旨在让开发者基于个性化需求上实现某些功能。换句话说,框架是可被应用开发者定制的骨架。

在下面的示例中,第3类作为定义框架的一部分,第4类是用作框架客户端代码。

Main.java是框架的整个入口,这一点不能改变。

[js]  view plain copy
  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允许开发者可根据自己的需求来定义/扩展功能。

[js]  view plain copy
  1. public abstract class Move {  
  2.     public abstract void action();  
  3. }  
Human.java是个模板,用来映射框架的工作原理。

[js]  view plain copy
  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”。

[js]  view plain copy
  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之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值