/**
* 简单工厂模式:由一个工厂方法或者工厂对象,来帮助完成对象的创建工作
*
* 有了面向对象才有了方法的覆盖,有了方法的覆盖才有了多态
* */
public class TestFactory {
public static void main(String[] args) {
Animal animal = createAnimal();
animal.eat();
}
/*
* 将创建对象的工作交给工厂
* */
static Animal createAnimal() {
try {
//读取配置文件
FileReader fileReader = new FileReader("C:\\Users\\sanren\\Desktop\\config.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
String str = bufferedReader.readLine();
bufferedReader.close();
String[] split = str.split("=");
String className = split[1].trim();
Class c = Class.forName(className);
Object o = c.newInstance();
return (Animal) o;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
abstract class Animal{
public abstract void eat();
}
class Dog extends Animal{
public void eat(){
System.out.println("狗吃");
}
}
class Cat extends Animal{
public void eat(){
System.out.println("猫吃");
}
}
factory
猜你喜欢
转载自blog.csdn.net/weixin_45522160/article/details/104647030
今日推荐
周排行