如何设计Java框架----一个简单的例子【翻译】

原文:http://www.programcreek.com/2011/09/how-to-design-a-java-framework/

原文和翻译都只是参考,如有不对,欢迎指正。

你可能会好奇框架是如何工作的,我会创建一个简单的框架来演示一下。

框架的目标
首先,为什么我们需要框架而不是库呢?框架的目标是定义一个让开发者实现基于个性化需求的某些功能的过程,换句话说,框架定义了骨架而开发者进行填补。

简单的框架
在下面的例子中,前三个类是框架的一部分,第四个类是该框架的客户端代码。

Main.java是框架的入口点,不能修改。

1 //imagine this is the entry point for a framework,it can not be changed
2 public class Main{
3     public static void main(String[] args){
4         Human h=new Human(new Walk());
5         h.doMove();
6     }
7 }

Move.java是钩子,可以让开发者基于他们的需求来定义/继承函数。

1 public abstract class Move{
2     public abstract void action();
3 }

Human.java是模板,体现了框架是如何工作的。

1 public class Human{
2     private Move move;
3     public Human(Move m){
4         this.move=m;
5     }
6     public void doMove(){
7         this.move.action();
8     }
9 }

这个简单的框架允许和需要开发者去继承"Move"这个类,事实上,在这个框架里,action方法是开发者唯一能够改变的。

在内部实现中,可以编写不同的"action"达到不同的目的。比如下面的例子是打印出"5 miles per hour",当然,你也可以改为"50 miles per hour"。

1 public class Walk extend Move{
2     @Override
3     public void action(){
4         System.out.println("5 miles per hour - it is slow!");
5     }
6 }

总结

这个例子只是展示了一个简单的模板和钩子是如何工作的,一个实用的框架比这更复杂,不仅包含了模板-实例之间的关系,而且对于如何有效的提高性能和程序可用性也是很复杂的过程。

转载于:https://www.cnblogs.com/yanyd/p/4193923.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值