factory

/**
 * 简单工厂模式:由一个工厂方法或者工厂对象,来帮助完成对象的创建工作
 *
 * 有了面向对象才有了方法的覆盖,有了方法的覆盖才有了多态
 * */
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("猫吃");
    }
}
发布了10 篇原创文章 · 获赞 0 · 访问量 112

猜你喜欢

转载自blog.csdn.net/weixin_45522160/article/details/104647030