反射当中配置呢文件的练习

我们如果通过配置文件的使用来对软件进行功能扩展,


* 需求:定义一个可以运行的笔记本运行的方法。
* 增加需求:我要给笔记本插上一个鼠标

* 思路:我可以定义一个规则,
* 1.给笔记本类创建一个可以实现的接口USB,
* 2.只要符合这个规则的就可以在笔记本当中使用, 
* 3.不同的usb在实现当中有不同的方法体。

* java当中目前最好的XML的解析器是: DOM4j
*
* 用反射的方法:
* 思路:我们给了类包的地址,那么就可以通过获得class文件来创建该类
* 并且调用当前方法。我在源文件当中定义了规则。
* 2.我设定了USB的实现规则,和本程序可以调用的功能个,让该类继承这个接口,
* 3.在配置文件当中,配置我们自己写的类。usu.properties


反射当中配置呢文件的练习_第1张图片


简单的代码原理。其中不同的类不得代码我就不做要求了。

package com.reflect;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

import jdk.jfr.events.FileWriteEvent;

import com.text.fileIO;

public class NoteBookTest
{
	public static void main(String[] args) throws IOException, Exception
	{
			/*
			 * 需求:定义一个可以运行的笔记本运行的方法。
			 * 增加需求:我要给笔记本插上一个鼠标
			 * 
			 * 思路:我可以定义一个规则,
			 * 1.给笔记本类创建一个可以实现的接口USB,
			 * 2.只要符合这个规则的就可以在笔记本当中使用, 
			 * 3.不同的usb在实现当中有不同的方法体。
			 * 
			 * java当中目前最好的XML的解析器是: DOM4j
			 *
			 * 用反射的方法:
			 * 思路:我们给了类包的地址,那么就可以通过获得class文件来创建该类
			 * 并且调用当前方法。我在源文件当中定义了规则。
			 * 2.我设定了USB的实现规则,和本程序可以调用的功能个,让该类继承这个接口,
			 * 3.在配置文件当中,配置我们自己写的类。usu.properties
			 */
		
		NoteBook not = new NoteBook();
		  
		//创建配置文件夹
		File f = new File("temp\\usb.properties");
		//查看文件是否存在
		if (!f.exists())
		{
			//如果文件不存在,那么我们创建文件
		   f.createNewFile();			
		}
		//那么我现在开始读取配置文件
		
		FileReader fRed = new FileReader(f);

		Properties pro = new Properties();
		//加载我们读取到的流
		pro.load(fRed);
		
		//读取键值对
		for (int i = 0; i < pro.size(); i++)
		{
			//获得包的路径
			String clName= pro.getProperty("usb"+i);
			
			System.out.println(clName);
			Class cl = Class.forName("com.reflect.MoseMyUSB");
			not.userUSB((USB)cl.newInstance());
		}
		
		fRed.close();
	}

}


你可能感兴趣的:(java学习博客)