也许你会好奇框架是如何工作的?本文将通过一款简单的框架案例来演示框架的工作原理。
框架目标
首先,我们要明确为什么需要框架(除了当作库)?框架的目标是为了定义一个过程,旨在让开发者基于个性化需求上实现某些功能。换句话说,框架是可被应用开发者定制的骨架。
在下面的示例中,第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();
}
Human.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 per hour – it is slow!”);
}
}
结束语:
这里的示例只演示了一个简单的模板和Hook工作原理。当然,一个真正的框架要比这个复杂的多,它不仅包含像template-temple之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
内存数据网格提供商一头扎进Java
10年的时间里,应用性能解决方案提供商Alachisoft一直在用NCache(针对N-Tier和网格计算.NET应用的内存计算和数据网格产品)为.NET社区服务。
-
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高, 直到把内存吃完应用崩溃,但是这个wrapper
遇到这样一个问题:通过java service wrapper部署应用,wrapper进程占用的内存会一直升高 […]
-
Google App Engine for Java 对于目前中国需要学习吗?
-
前无古人后无来者的Java平台
开发人员一直在致力于保持Java的活力,经过20年后,我们感觉从来没有更好的、更令人激动的时刻如同Java社区一样。