📄 accountdaofactory.java
字号:
package DAO;import java.io.*;import java.lang.reflect.*;/* * DAO工厂,用来构建出不同的DAO实现; * 通过配置文件来获得不同的DAO实现; * 所以工厂要通过读配置文件,来确定创建具体的DAO实现; * * DAO工厂也是单例模式, */public class AccountDaoFactory { //懒汉式 private static AccountDaoFactory factory = new AccountDaoFactory(); private AccountDaoFactory() { } public static AccountDaoFactory newFactory() { return factory; } /* * 首先从配置文件中获得DAO实现类的完整类名, * 再获得保存客户数据的文件的绝对路径; * 然后就可以根据类名来创建DAO的实例,同时再 * 保存客户数据的文件的绝对路径传给DAO的实例; */ public AccountDAO getAccountDao() { Object account = null; try { FileReader fr = new FileReader("D:\\sh_workspace\\Bank\\Data\\confige.txt"); // FileReader fr=new // FileReader("/home/soft01/workspace/mybam/DAO/confige.txt"); BufferedReader fin = new BufferedReader(fr); String daoname = fin.readLine(); String filename = fin.readLine(); fin.close(); /* * 首先根据类名来获得类的对象(入口), * 再根据构造器的参数类型,来获得构造器, * 然后调用构造器的newInstance()方法来 * 创建一个AccountDAO的实例; */ Class name = Class.forName(daoname); Constructor con = name.getConstructor(String.class); account = con.newInstance(filename); } catch (Exception e) { e.printStackTrace(); } // System.out.println(account.getClass().getName()); return (AccountDAO) account; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -