也许你会好奇框架是如何工作的?本文将通过一款简单的框架案例来演示框架的工作原理。
框架目标
首先,我们要明确为什么需要框架(除了当作库)?框架的目标是为了定义一个过程,旨在让开发者基于个性化需求上实现某些功能。换句话说,框架是可被应用开发者定制的骨架。
在下面的示例中,第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之间的关系;还包括非常复杂的进程,比如如何有效地提高性能和编程的可用性。
相关推荐
Jquery合并单元格--摘自caojin723的博客
Java 网摘 Java 网摘 经典的总结 Java 网摘 经典的总结
网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合网摘集合...
百亿网摘整站 后台功能 --------------------- 基本信息 管理站点的基本信息 栏目管理 栏目分类 网摘管理 已推荐网摘 推荐网摘 首页生成 重新生成页面 审核网摘 管理网摘 模版管理 模版管理 用户管理 管理员修改 ...
JAVA面试陷阱是本人从网上摘得,为了换点资源分
网摘精灵是一款网站推广网站,这个软件利用网摘网站点多面广的优势,把网站的精华内容提交到网摘站。 目前网络上网摘类站点很多,每个网摘站也都有自己特定的访问群体。把网站的内容提交到多个网摘站,可以将内容...
此为一份word文档的资料,是关于Java学习范围的总结。
1、把文件上穿上去以后,在phpmyadmin里边 建立一个数据库。假设是 pictop。 然后把sql文件mmei8.sql导进去。 2、修改数据库配置文件,conn.php.修改网摘配置文件 include/setup.php。 3、后台路径admin/default...
另外,如果需要针对搜索引擎进行优化,请把Url.asp文件里的iframe框架去掉改为链接模式,也还可以增加相关盈利的广告代码。 “天空网摘”程序分为免费共享版和80元付费后台功能完整版(包含数据更新服务),前者...
我的CSDN学习收藏网摘链接,适合JAVA学者,如果不适合,请砸砖,砸鸡蛋。 请看清楚, 是我的, 意思就是我在华为学习的JAVA.... 请不要误会了. 那个linux大全是我不小心弄上去的.. 不好意思.
另外,如果需要针对搜索引擎进行优化,请把Url.asp文件里的iframe框架去掉改为链接模式,也还可以增加相关盈利的广告代码。 “天空网摘”程序分为免费共享版和80元付费后台功能完整版(包含数据更新服务),前者...
目标 利用网摘建站,打造最便捷的资讯服务!最适合于做小型SEO网站。 适用范围 新闻娱乐、专业学术、地方门户、行业资讯等相关网站建设。 参考范例:电子书藏家 初始化 注册用户:天空 密码:admin 登录:Login....
1、把文件上穿上去以后,在phpmyadmin里边 建立一个数据库。假设是 pictop。 然后把sql文件mmei8.sql导进去。 2、修改数据库配置文件,conn.php.修改网摘配置文件 include/setup.php。 3、后台路径admin/default....
PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端...
大家盼望已久的功能终于推出了,带有注册的功能,相当于一个完整的网摘,此次改动较大,加入了大家强烈要求的注册互动功能,成为了一个不仅仅能,而且能摘网摘.
修正修正了一个查看会员出错的问题; * 20. 增加**志发表断点功能; * 21. 增加开通图片友情链接; * 22. 修正了365网摘的错误; * 23. 增加了增加了语言过滤功能 * 24. 增加了IP屏蔽功能 * 25. 修正跨站偷取Cookie...
SpaceBuilder是一款基于asp.net业内领先的Web2.0社区平台。结合博客、相册、文件、网摘、迷你博客、论坛、活动、圈子、资讯等应用模块,可以快速的搭建具有SNS特征的在线社区。借助SpaceBuilder平台的服务(用户、...
ASP实例开发源码—麦布简易网摘源码 asp版.zip ASP实例开发源码—麦布简易网摘源码 asp版.zip ASP实例开发源码—麦布简易网摘源码 asp版.zip
23个收藏到网摘的16x16图标及代码