原文地址:http://www.programcreek.com/2011/09/how-to-design-a-java-framework/
你可能很好奇关于如何框架是怎么运作的,这里会展示一个简单的框架示例用于证明的含义。
框架的目的
首先我们为什么需要一个框架呢?相对于知识一个普通的库呢?框架的目的是定义一个让开发者实现真正的基于工业需求的方法的过程,换句话说,框架定义骨架,当需要用这个框架的时候开发者填充肉体,
最简单的框架DEMO
看下面的示例,前面定义的3个类作为框架的一部分,第四个类是框架的客户端代码。
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 是一个钩子(回调钩子,回调函数),钩子函数是一个开发者可以自定义基于具体需求的 可定义/可继承的方法。
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!");
}
}
总结:
这个示例,展示一个简单的模板和钩子工作模式,一个真正的框架比这个复杂很多
|