本文介绍了什么是框架,并提供了最简单的框架——在两个双精度操作后返回双精度值。
1、什么是框架
框架/框架的目的是定义一种框架方法,以处理在不同APP应用程序中遇到的常见基本细节。 另一方面,APP应用开发者可以使用框架来满足自己的需要,并填写自己的/flesh来提供自己的功能以实现——。 对于applet和GUI框架,由于需要处理的基本细节太多,最简单的框架lower.MyFramework表示框架方法为两个双精度操作返回一个双精度值。 在该框架方式中,本框架处理了很多技术细节,但省略了代码。
在此框架中,可以对两个double执行各种操作,如加法、比较和幂等。 具体如何应用,需要根据需求提供代码。
package principle.callback.lower;
//*
*最简单的Java框架
*
* @author yqj2065
* @版本2014.10
*/
公共接口我的框架{
publicdoubleop (双精度,双精度n );
}
嗯,最简单的框架是函数接口lower.MyFramework,它对两个双精度进行操作,然后返回一个双精度值。 与JUnit一样,我们还设计了类main,main (字符串[ ] args )在其中启动此框架。 使用此框架时,请使用键2065指定要在配置文件my.properties中创建的对象。
package principle.callback.lower;
导入工具. god;
公共类主{
//*
*命令行启动此框架。
* @param args至少两个双精度
*/
publicstaticvoidmain (字符串[ ] args ) {
myframeworkf=(我的框架) god.create ) (2065 );
双精度=f.op (double.parsedouble (args [0],double.parse double ) args[1] );
系统. out.println (d;
}
//*
与JUnit一样,它提供了调用APP的方法。
*/
publicstaticdoublerunframework (myframeworkf、double x、double y ) {
returnf.op(x,y );
}
}
请注意,框架中常用的技术是反射和回调。
tool.God使用反射和轮廓创建对象,
Main调用f.op (双精度,双精度),具体方法主体由上级代码提供。
ok,框架已经设计好了。
2 .如何使用框架
现在是我们的APP应用程序员工作的时候了。
最初,APP应用程序程序员当然会写HelloWorld,熟悉框架.
. HelloWorld无法与傲慢的框架放在一个包中。 可以想象,它被打包在principle.callback.lowe和jar中。
的框架使用者通常进行填空式编程。
这是库与框架的区别——上层模块的程序员直接调用的,属于库函数的上层模块的程序员提供的请求回调函数,属于框架。
package principle.callback;
publicclasshelloworldimplementsprinciple.callback.lower.my framework {
publicdoubleop (双精度,双精度n ) {
return m n;
}
}
在第2步中,根据框架的要求自己创建概要文件。 因此,我在my.properties中添加了以下键值对:
2065=principle.callback.hello world
在第3步中,在命令行上运行框架进行测试。 示例:
e :designpatternjavaprinciple.callback.lower.main1. 23.4
4.6
通常,APP应用程序程序员在APP应用程序中启动和调用框架,而不是直接在控制台中启动和调用框架。 这是框架的Main提供的
运行框架(my framework,double,double )的含义。 框架的设计者真的很亲切。 我们的APP应用如下。
package principle.callback;
导入工具. god;
import principle.callback.lower.my framework;
import principle.callback.lower.main;
公共类应用程序{
publicstaticvoidmain (字符串[ ] args ) {
myframeworkf=(我的框架) god.create ) (2065 );
doubled=main.runframework(f,1.2,3.4 );
系统. out.println (d;
}
}
HelloWorld也包含在此包中,因此App应用程序App可以直接使用,而无需反射。 我们也可以在App上使用匿名类、式直接描述自己的需求。 ——很少定义类似HelloWorld的类。
package principle.callback;
导入工具. god;
import principle.callback.lower.my framework;
import principle.callback.lower.main;
公共类应用程序{
publicstaticvoidmain (字符串[ ] args ) {
myframeworkf=(我的框架) god.create ) (2065 );
doubled=main.runframework(f,1.2,3.4 );
系统. out.println (d;
}
公共静态语音测试(
双精度=main.run framework (new hello world ),1,3 );
系统. out.println (d;
myframeworkf=(双精度,双精度n )-{return m * n; (;
d=main.runframework(f,1,3 );
系统. out.println (d;
f=(m,n )-{return m 2*n; (;
d=main.runframework(f,1,3 );
系统. out.println (d;
d=main.runframework((m,n )-{return m-n; (,1,3 );
系统. out.println (d;
}
test (执行输出:
4.0
3.0
7.0
-2.0
3 .什么是控制反转
拜托了。 我的术语库中没有控制反转(Inversion of Control,英语缩写为IoC )这样的垃圾术语。 我不知道那是什么。