也许你会好奇框架是如何工作的?本文将通过一款简单的框架案例来演示框架的工作原理。
框架目标
首先,我们要明确为什么需要框架(除了当作库)?框架的目标是为了定义一个过程,旨在让开发者基于个性化需求上实现某些功能。换句话说,框架是可被应用开发者定制的骨架。
在下面的示例中,第3类作为定义框架的一部分,第4类是用作框架客户端代码。
Main.java是框架的整个入口,这一点不能改变。
1
2
3
4
5
6
7
|
//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允许开发者可根据自己的需求来定义/扩展功能。
1
2
3
|
public abstract class Move { public abstract void action();
} |
Human.java是个模板,用来映射框架的工作原理。
1
2
3
4
5
6
7
8
9
10
11
|
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”。
1
2
3
4
5
6
7
8
|
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之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。
相关推荐
Java学习是成为一个专业Java开发者的基石,而"Java学习必得(网摘)"这份文档则是对Java学习路径的一个全面概述。以下将详细讲解其中提到的关键知识点: 1. **语法理解**:Java语法是编程的基础,熟悉并能理解错误...
系统的技术架构基于 Java EE,使用 Struts、Hibernate 和 Freemarker 等主流框架和组件,实现了一个基于 Web 的个人数字图书馆系统。 系统的设计和实现考虑了以下几个方面: 1. 系统的安全性:系统使用了 HTTPS ...
个人数字图书馆的设计与实现基于Java EE,使用了Struts、Hibernate和Freemarker等主流框架。Struts是一个基于MVC模式的Web应用程序框架,used to build fast, scalable, and secure web applications。Hibernate是一...
Struts1.x是一款经典的Java Web开发框架,由Apache软件基金会维护,主要用于构建MVC(Model-View-Controller)架构的应用程序。本系列教程是针对初学者的全面指导,旨在帮助学习者快速掌握Struts1.x的核心概念和使用...
关于apache组织的mina通信框架,可替代 java.NIO.Selector 的更好选择, 里面包括 mina 2.07版本的源码,编译好的jar文件,以及一些网络上找来的网摘资料文档 [截至2013年10月止]。 打包文件名:...
在Java编程领域,Swing是一个用于构建图形用户界面(GUI)的库,它提供了丰富的组件和功能,使得开发者能够创建出美观且功能强大的桌面应用程序。本篇内容将深入探讨Swing的相关知识点,尤其是与提示框相关的应用。 ...