版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
模拟spring用配置文件的方式创建对象
看代码:
定义一个接口:
package designfactory;
public interface Moveable {
//有一个run方法
void run();
}
两个实现类,实现接口:
package designfactory;
public class Train implements Moveable {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.print("Train run run run run ");
}
}
package designfactory;
public class Car implements Moveable {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(" car move run runr run r r r ");
}
}
配置文件:
spring.properties
扫描二维码关注公众号,回复:
7201357 查看本文章
vechileType = designfactory.Train
看测试类:
package designfactory;
import java.io.IOException;
import java.util.Properties;
public class Test {
public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
// TODO Auto-generated method stub
Properties p = new Properties(); // 读取配置文件
//如何读取配置文件
// Test.class 拿到这个类对象,getclassLoader 是拿到类装载器
p.load(Test.class.getClassLoader().getResourceAsStream("designfactory/spring.properties"));// 文件转为配置文件
String vechileType = p.getProperty("vechileType");
//使用Java 反射将类取出
//装载到内存 Class.forName newInstatnce 是实例化对象
Object o = Class.forName(vechileType).newInstance();
Moveable m = (Moveable)o;
m.run();
//System.out.println(vechileType);
//Moveable a = new Car();
//抽象工厂模式是一个抽象工厂, 加一系列抽象产品类, 然后去实现抽象工厂,就可以实现具体产品, 具体产品只要实现抽象产品即可
//a.run();
}
}