你可能对框架如何工作感到好奇? 这里将通过一个简单的框架示例来说明框架的思想。

框架目标

首先,为什么我们需要一个除普通库以外的框架? 框架的目标是定义一个过程,使开发人员可以根据个人需求实现某些功能。 换句话说,框架定义了框架,开发人员在使用框架时填充了框架。

最简单的框架

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

 

Main.java是框架的入口点。 这是无法更改的。

//imagine this is the entry point for a framework, it can not be changedpublic 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()方法是开发人员唯一能够更改的东西。

在实现内部,可以将不同的“动作”编程为不同的目的。 例如。 下面的示例显示“每小时5英里”,你当然可以将其重新定义为“每小时50英里”。

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

结论

此处的示例仅显示了一个简单的Template and Hook的工作方式。 真正的框架要比这复杂得多。 它不仅包含模板-模板关系之类的其他关系,而且还包含有关如何有效提高性能和编程可用性的非常复杂的过程。