私はDAOインターフェースを実装するDAOimplクラスを呼び出すビジネスクラスを持っていますが、これは結合をどのように減らしていますか。DAO は、永続化ロジックとの結合を減らすために使用されます。DAO とビジネス ロジックの結合を減らすために何をすべきか。
質問する
549 次
1 に答える
4
あなたのビジネス クラスは、他のビジネス クラスと対話したいと考えています。DAO が提供するインターフェイスは、ビジネス クラスへの依存関係のみを必要とする必要があります。
例えば
public class Apple extends Fruit {}
と
public interface AppleDao extends Dao { // can be refactored even more
public void add(Apple apple) throws FruityException;
}
そして実装
public class AppleDaoHibernateImpl implements AppleDao {
@Inject
private Session session; // Hibernate session or JPA EntityManager, etc.
public void add(Apple apple) throws FruitException {
// do something with session, entityManager, etc.
}
}
ビジネス クラスが を使用する場合AppleDao
、SQL、I/O など、インポートする (依存する) 必要があるクラスは表示されません。Apple
代わりに、や などのより多くのビジネス (モデル) クラスのみが表示されFruityException
ます。
このようにして、インターフェイスを変更せずに、データベースを直接使用する代わりに Web サービスを使用するなど、基礎となる実装を変更できます。
于 2013-09-24T19:43:31.843 に答える