Java动态加载类小实验.doc

Java动态加载类小实验.doc

ID:62033548

大小:32.50 KB

页数:3页

时间:2021-04-15

Java动态加载类小实验.doc_第1页
Java动态加载类小实验.doc_第2页
Java动态加载类小实验.doc_第3页
资源描述:

《Java动态加载类小实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java动态加载类的意义和目的:Java动态加载类主要是为了不改变主程序代码,通过修改配置文件就可以操作不同的对象执行不同的功能。主要有利于系统的扩展,例如当我要改变一个功能,只需要做一个类,然后编写相应的功能,通过配置文件就可以使用新的功能,不需要修改系统的任何地方,只需要添加一个类;充分实现了松散耦合。满足了开闭原则(对修改关闭,对添加或删除开放);动态加载类设计模式主程序类(含main方法)接口类ICarFactory抽象方法makeCar()       组合     组合Implements实现类BMWFactory实现makeC

2、ar()实现类BYDFactory实现makeCar()几个重要概念ﻩInterface(接口):定义了一堆未实现的方法(即抽象方法);它们的具体实现是由要实现这个接口的类来实现方法的具体功能。ﻩClass.forName(StringclassName):将一个给定的字符串通过forName方法转换成一个类类型,例如:Class。forName(“Integer")他就能产生一个Integer类型;通过newInstance()方法可以产生该类的对象。例如ArrayListarr=(ArrayList)Class.forName(“Arr

3、ayList”).newInstance()就产生了一个ArrayList的对象arr,通过它就可以调用ArrayList类的方法.注意:className对应的字符串的类必须有一个无参的构造方法。Java动态加载类的实现过程(造汽车为例)1.创建一个接口(ICarFactory),他有一个未实现的方法makeCar()用于制造汽车.2.有两个类实现了ICarFactory接口,那么他们也实现了makeCar()方法。BYDFactroy类--—--———-—————--makeCar()用于制造BYD,他实现了具体的制造BYD的方法BMW

4、Factroy类———--——-----—-makeCar()用于制造BMW,他实现了具体制造BMW的方法3.创建配置文件xml将相应的类名(类全名=包名+类名)写入相应的位置;4.创建主程序类,首先声明一个ICarFactory类型的变量icf,然后从xml中读出相应的类名,调用Class。forName(className)。instance()得到具体类的实例并赋值给icf,最后通过icf调用makeCar()方法,就可以得到一辆造好的汽车。注意:该实验用到的JAR包为dom4j-1.6。1.jar,当然你也可以从property里读

5、或者直接用java解析xml的类这样你就不需要这个外部JAR包了。创建接口packagedynamic.test;//接口用于知道汽车有一个抽象方法makeCar();实现他的类都要实现该方法publicinterfaceICarFactory {publicvoidmakeCar();//等待实现的造车方法}创建两个实现了接口的类//创建BYDFactory类,实现了ICarFactorypackage dynamic。test;publicclassBYDFactory implementsICarFactory{//实现了ICarFa

6、ctory的makeCar()方法ﻩpublic voidmakeCar() {ﻩﻩSystem。out.println("BYDFactroy madeaBYDforyou”);}}//创建BMWFactory类,实现了ICarFactorypackagedynamic。test;publicclassBMWFactoryimplementsICarFactory{//实现了ICarFactory的makeCar()方法public voidmakeCar(){System.out.println("BMWFactroymade aBMW

7、foryou");}}创建配置文件Factory.xml<Factory>〈!-—相应的造车工厂的类全名,现在的程序可以选dynamic。test.BMWFactory或dynamic。test。BYDFactory—->dynamic。test.BYDFactory

8、ception;importorg.dom4j。Element;import org.dom4j.io。SAXReader;publicclassTestMain{//测试程序主

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。