我正在构建一个具有业务逻辑层的应用程序,该业务逻辑层需要访问所有与数据库相关的东西的 DAO 层。我的要求是 DAOImpl 类可以不断变化,因此我正在寻找在我的业务逻辑类中获取 DAOImpl 类句柄的方法,而无需知道实际的 DAOImpl 类。有什么办法可以在 Java 中实现这一点?
问问题
1520 次
3 回答
3
DAOImpl
类应该实现一个接口DAOLayer
(比如说)。您的 businessLogic 类应该由一个DAOLayer
对象组成。
class BusinessLogic
{
/// ...
DAOLayer daoLayer;
public BusinessLogic(DAOLayer daoLayer)
{
this.daoLayer = daoLayer;
}
/// ...
}
class DAOImpl implements DAOLayer
{
/// ...
}
DAOLayer
您应该在创建BusinessLogic
类对象时传递实际的实现。
类似于以下:
DAOLayer aDaoLayer = new DAOImpl();
BusinessLogic bl = new BusinessLogic(aDaoLayer);
或者
public BusinessLogic()
{
this.daoLayer = DAOFactory.create(true);
}
class DAOFactory
{
public static DAOLayer create(bool isDB)
{
DAOLayer aDao;
if(isDB)
{
aDao = // create for DB
}
else
{
aDao = // create for file
}
return aDao;
}
}
于 2013-03-19T09:53:09.627 回答
0
听起来你想使用一个接口,它是java将实现与所需行为解耦的基本方法。
于 2013-03-19T09:51:36.407 回答