如何设计一款Java框架?

来源:csdn 发布时间:2013-11-05 阅读次数:1548

11

 

设计一款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();     
}
}


  Move.java是Hook。该Hook允许开发者可根据自己的需求来定义/扩展功能。


public abstract class Move {
public abstract void action();
}


java是个模板,用来映射框架的工作原理。


public class Human {
private Move move;
 
public Human(Move m){
this.move = m;
}
 
public void doMove(){
this.move.action();
}
}


  这款简单的框架允许并要求开发者扩展“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 <span id="3_nwp" style="width: auto; height: auto; float: none;"><a id="3_nwl" href="http://cpro.baidu.com/cpro/ui/uijs.php?app_id=0&c=news&cf=1001&ch=0&di=128&fv=11&is_app=0&jk=e5039d9d2f474515&k=per&k0=per&kdi0=0&luki=2&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=1545472f9d9d03e5&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F3246%2Ehtml&urlid=0" target="_blank" mpid="3" style="text-decoration: none;"><span style="color:#0000ff;font-size:14px;width:auto;height:auto;float:none;">per</span></a></span> hour - it is slow!");
}
}


  结束语:

演示了一个简单的模板和Hook工作原理。当然,一个真正的框架要比这个复杂的多,它不仅包含像template-temple之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。

  英文出自:Programcreek