zoukankan      html  css  js  c++  java
  • java工厂模式实例化class

    import java.io.*;
    import java.util.*;
    
    interface fruit {
        public abstract void eat();
    }
    
    class Apple implements fruit {
        public void eat() {
            System.out.println("Apple");
        }
    }
    
    class Orange implements fruit {
        public void eat() {
            System.out.println("Orange");
        }
    }
    
    // 操作属性文件类
    class init {
        public static Properties getPro() throws FileNotFoundException, IOException {
            Properties pro = new Properties();
            File f = new File("fruit.properties");
            if (f.exists()) {
                pro.load(new FileInputStream(f));
            } else {
                pro.setProperty("apple", "Apple");
                pro.setProperty("orange", "Orange");
                pro.store(new FileOutputStream(f), "FRUIT CLASS");
            }
            return pro;
        }
    }
    
    class Factory {
        public static fruit getInstance(String ClassName) {
            fruit f = null;
            try {
                f = (fruit) Class.forName(ClassName).newInstance();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return f;
        }
    }
    
    class Hello {
        public static void main(String[] a) throws FileNotFoundException,
                IOException {
            Properties pro = init.getPro();
            fruit f = Factory.getInstance(pro.getProperty("apple"));
            if (f != null) {
                f.eat();
            }
        }
    }

    如果之前没有配置文件,就会生成一个配置文件如下:

    #FRUIT CLASS
    #Sun Sep 08 11:32:46 CST 2013
    apple=Apple
    orange=Orange
  • 相关阅读:
    【JavaScript】JavaScript 思维导图
    python logging 模块
    推荐系统
    【Linux】国内镜像汇总
    python 小游戏练手
    Python3 拼图小游戏
    python cls self 讲解
    Python-插件化开发
    Python-并发和线程
    git命令的使用
  • 原文地址:https://www.cnblogs.com/yanghuahui/p/3308190.html
Copyright © 2011-2022 走看看