![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
unkis |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 802 Регистрация: 8.9.2004 Репутация: нет Всего: 1 |
Ребята реализовать нужно примерно следуюшее:
Через WebService приходит объект, над этим объектом и с помошью него, должно производиться какое-то количество действий, я называкю их Action. Набор определённых действий над объектом, я называю процессом. Вот так выглядит простенькая диаграмма классов. ![]() Есть основной класс Process, который в себе содержит объект и список действий, задач. Проблема заключается в том, как сохранить этот процесс с объектом и его действиями в базу, чтобы потом черз какое-то время извлечь этот процесс и выполнить все действия? Это сообщение отредактировал(а) unkis - 8.12.2011, 10:40 -------------------- www.unkis.com |
|||
|
||||
_Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Если я правильно понял, нужно сохранять последовательность действий и, возможно, параметры этих действий.
Тогда так примерно: Как нарисовано, каждый процесс - List содержащий ссылки на обьекты имплементирующие ActionInterface. Если предполагается сохранять все в какой-то стандартной реляционной БД без записи данных во множество различных фаилов, в ActionInterface прописываеем методы "конвертировать аттрибуты в String" и "восстановить аттрибуты из String". Метод "восстановить аттрибуты из String" удобно вызывать из конструкторов, за искллючением случаев, когда данный Action аттрибутов не имеет. БД может выглядеть как-то так (но вариантов множество): 1. Таблица "Processes": поля "Имя-идентифицатор процесса" и "Массив идентификаторов Actions". В известных мне БД массивы напрямую храниться не могут, но, проще всего будет все-таки записать их в одно поле String, разделив, например, запятыми (впрочем, решений здесь множество). 2. Таблица "Actions": поля "Имя-идентифицатор Action", "Имя класса Action" и "Данные". При чтении из БД: 1. Создаем пустой список типа ActionInterface. 2. Находим нужный процесс в таблице "Processes". 3. Читаем из этой таблицы список Actions, разбивам его по запятым на массив. 4. В цикле проходим по полученному массиву читая для каждиого идентифицатора Action строку из второй таблицы. При этом создаем обьекты классов указаннык в поле "Имя класса Action", передавая конструкторам содержание поля "Данные". Созданные обьекты добавляем в список. 5. После окончания цикла чтения имеем список Actions и пользуемся им как хотим. ЗЫ: Можно сделать и проще, и сложнее, ни это уже зависит от специфических требований задачи. Это сообщение отредактировал(а) _Y_ - 8.12.2011, 12:09 -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |