摘要:如何设计一款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();
- }
- }
- public abstract class Move {
- public abstract void action();
- }
- public class Human {
- private Move move;
- public Human(Move m){
- this.move = m;
- }
- public void doMove(){
- this.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之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。