Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lec-14-DAO-v001

.pdf
Скачиваний:
13
Добавлен:
18.03.2015
Размер:
1.74 Mб
Скачать

КЛАСС AUTHORSERVICE

(ОКОНЧАНИЕ)

public synchronized String getAuthorsClean() {

if( authorList != null && authorList.size() > 0 ) { authorList.clear();

}

return( null );

}

//--------------------------------------------

public String getDaoDescr() { return daoDescr; }

//--------------------------------------------

public void setDaoDescr( String p_daoDescr ) { daoDescr = p_daoDescr; }

//--------------------------------------------

public void makeDAO() throws Exception { if (dao == null) {

if( daoDescr == null || daoDescr.equals("") || daoDescr.length() < 2 ) {

throw new Exception("DAO daoDescr must be set !" );

}

dao = BookStoreDAOFactory.getDAO( daoDescr );

}

}

}

ЗАКЛЮЧЕНИЕ

Задача класса BookStoreDAOFactory, вызываемого в методе makeDAO(), проста – создавать объект DAO и через свои методы вызывать методы вышеуказанного объекта, то есть выполнять делегирование вызовов методов.

Откровенно говоря, такой подход не слишком хорош, так как все классы, включая реализацию DAO, зависят от объектов модели, да еще как зависят! Пока мы будем пользоваться этим решением, незначительно его улучшая. В дальнейшем попытаемся придумать что-либо более подходящее. Мы воспользовались данной стратегией лишь потому, что ее иногда применяют на практике, так как каждое частное обращение к базе данных легко добавить. При этом такой подход достаточно эффективен, так как решения специализированные. Однако при большом количестве объектов и большом разнообразии обращений в базу данных, такой подход сделает приложение почти неуправляемым.

ИТОГИ

В теме рассмотрены:

Паттерны Data Access Object (или DAO) и

Session Facade

Пример реализации DAO

Классы сущности, представляющие модель

Особенности реализации

Интерфейс BookStoreDAO

Класс DerbyDAO

Класс AuthorService

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]