Car.java
package com.company.simplefactory;
public interface Car {
void run();
}
FordCar.java
package com.company.simplefactory;
public class FordCar implements Car {
@Override
public void run() {
System.out.println("ford run()");
}
}
HondaCar.java
package com.company.simplefactory;
public class HondaCar implements Car {
@Override
public void run() {
System.out.println("honda run()");
}
}
config.properties
Car=com.company.simplefactory.HondaCar
CarFactory.java
package com.company.simplefactory;
import java.io.IOException;
import java.util.Properties;
public class CarFactory {
private static Properties config = new Properties();
static {
try {
config.load(CarFactory.class.getResourceAsStream("config.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}
static Car make() throws ClassNotFoundException, IllegalAccessException, InstantiationException {
String carName = config.getProperty("Car");
Class<Car> clazz = (Class<Car>) Class.forName(carName);
Car car = clazz.newInstance();
return car;
}
}
Main.java
package com.company.simplefactory;
public class Main {
public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
Car car = CarFactory.make();
car.run();
}
}
1482

被折叠的 条评论
为什么被折叠?



