すべてのDB関連のもののために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 に答える
1
ビジネス ロジックは、実際の実装を隠すDAOインターフェイスのみを明確に処理する必要があります。
実装クラスをすばやく変更できるようにするには、Springなどの IoC コンテナーを見てください。
于 2013-03-19T09:52:55.233 に答える
0
インターフェイスを使用したいように聞こえますが、これは、実装を目的の動作から切り離すJavaの基本的な方法です。
于 2013-03-19T09:51:36.407 に答える