public interface IFactory { public IUserDao createUserDao(); public IAddressDao createIAddress();}
//单例模式 私有化构造函数
public class MySqlDaoFactory implements IFactory{ private static MySqlDaoFactory osdf=new MySqlDaoFactory(); private MySqlDaoFactory(){}; public MySqlDaoFactory getInstance(){ if(osdf!=null){ return osdf; } return new MySqlDaoFactory(); } public IUserDao createUserDao(){ return new UserDao(); } public IAddressDao createIAddress(){ return new AddressDao(); } }//反射
public class test01 { @Test public void testss(){ try { String dao = "com.whb.test.MySqlDaoFactory"; Class clz = Class.forName(dao); Constructor<?> cn=clz.getDeclaredConstructor(); System.out.println(cn); cn.setAccessible(true); MySqlDaoFactory m= (MySqlDaoFactory)cn.newInstance(); IAddressDao ia= m.createIAddress(); ia.show(); } catch (Exception e) { e.printStackTrace(); } } }
私有化构造函数后,使用反射初始化
最新推荐文章于 2021-05-05 22:07:19 发布