1)目的就是统一管理访问层的所有Dao,让Service在Dao的处理上相对独立
2)引用DaoFactory来管理所有的具体Dao,并采用单例模式限制DaoFactory的个数
测试类`import org.junit.Test;
//业务层(不变)
public class Demo1 {
@Testpublic void biaosh(){ Service service = new Service(); service.create();}
}
`
业务层
/**业务层*/public class Service { public void create() { DaoFactory daoFactory = DaoFactory.getDaoFactory(); IDao iDao = daoFactory.getDao(); iDao.create(); }}
工厂层
/*工厂模式 */public class DaoFactory { //NO1 外界不能方位,私有的构造函数 private DaoFactory(){} //NO2 提供对外访问公共类,外界通过类名点访问 public static DaoFactory getDaoFactory(){ if(daoFactory==null){ daoFactory = new DaoFactory(); } return daoFactory; } //NO3 私有静态变量 private static DaoFactory daoFactory; public IDao getDao(){ return new Daojdbc(); } }
接口层:
//接口层public interface IDao { public void create();}
访问层:
//访问层public class Daojdbc implements IDao { public void create() { System.out.println("Daojdbcclass:create()"); }}