Вы так называете своих Дао на своем слое обслуживания? - PullRequest
0 голосов
/ 12 января 2010

На вашем уровне обслуживания, скажем, у вас есть метод, который выполняет XX, вот как вы будете ссылаться на ваши классы Дао?

public class SomeServiceImpl implements SomeService

    public void DoSomething(int someThingId){

    UserDao userDao = this.daoFactory().GetUserDao();
    SalesDao salesDao = this.daoFactory().GetSalesDao();
    ..
    ..
    ..

    }

Это делает немного больше, и надеялся, что есть более простой и элегантный способ?

Ответы [ 3 ]

7 голосов
/ 12 января 2010

Я использую Springframework для настройки своего приложения.Эта структура имеет приятную особенность, которая позволяет мне внедрять зависимости в мой сервисный уровень.Поэтому реализация Сервиса выглядит примерно так:

@Autowired
private UserDAO userDao;
public void doSomething(int someThingId) {
userDAO.findById(someThingId);
...
}
0 голосов
/ 12 января 2010

Либо используйте аннотацию, либо конфигурацию xml для внедрения зависимости dao во время выполнения.

0 голосов
/ 12 января 2010

Я не уверен, насколько это "правильно", но я часто делаю частные методы получения объектов (свойств) DAO и делаю их отложенной загрузкой. Делает это менее многословным. Затем вы можете создать базовый класс обслуживания, если конкретный Дао используется в нескольких местах ...

public class SomeServiceImpl implements SomeService
{
    private UserDao _UserDao

    private UserDao getUserDao()
    {
        if (_UserDao == null)
        {
            _UserDao = DaoFactory.GetUserDao();
        }

        return _UserDao;
    }

    public void DoSomething(int somethingId)
    {
        this.getUserDao().findById(somethingId);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...