-1

すべてのDB関連のもののためにDAOレイヤーにアクセスする必要があるビジネスロジックレイヤーを持つアプリケーションを構築しています。私の要件は、DAOImpl クラスが変化し続けることができるようなものであるため、実際の DAOImpl クラスを知らなくても、ビジネス ロジック クラスで DAOImpl クラスへのハンドルを取得できる方法を探しています。Javaでこれを達成する方法はありますか?

4

3 に答える 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 に答える