Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];

Вниз

Связать алгоритм с классами   Найти похожие ветки 

 
LDV   (2010-10-20 10:55) [0]

Сторонним приложением генерится 2 xml-файла (A.xml и B.xml). Для работы с ними в своем приложение написаны 2 класса (TAnalyserA и TAnalyserB). Задача: для определенных веток в обоих файлах проверять наличие обязательных атрибутов и отсутствие запрещенных. Как с точки зрения структуры правильно связать алгоритм с обеими классами, чтобы не дублировать код дважды. Я как новичок, пока что вижу один вариант:

Написать класс TAnalyser с единственным методом
 
 Analyse (xml_node: IXMLNode; Rules: TStrings), где:

 - xml_node - ветка, которую будем анализировать
 - Rules    - список атрибутов, для каждого из которых в Object будет хранится целочисленный параметр (C_NECESSARY или C_NOT_ALLOWED).

TAnalyserA и TAnalyserB сделать наследниками от TAnalyser. Может есть более грамотные варианты.


 
brother ©   (2010-10-20 11:08) [1]

> TAnalyserA и TAnalyserB

сейчас наследники чего?


 
Медвежонок Пятачок ©   (2010-10-20 11:10) [2]

класс нужен один (вообще-то и он совсем не нужен)
нужен третий xml со списком выражений xpath и флагом
по xpath"ам ищем узлы (nil or not nil) а флагом проверяем верно это или нет.


 
Медвежонок Пятачок ©   (2010-10-20 11:12) [3]

хотя боязнь наличия запрещенных атрибутов - это странное.
мне лично они никогда не мешали жить. ну есть и есть.


 
Фокус_Ник   (2010-10-20 13:18) [4]

> Как с точки зрения структуры правильно связать алгоритм с обеими
> классами, чтобы не дублировать код дважды.

Как угодно. Можно и совсем никак не связывать. Можно даже и вовсе без классов обойтись, потому что класс с единственным методом вполне можно заменить обычной процедурой. И если проверки разные, то непонятно, о каком дублировании кода идет речь.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2011.01.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.004 c
2-1287918930
Анна
2010-10-24 15:15
2011.01.16
многопоточная организация в Делфи


15-1286185224
картман
2010-10-04 13:40
2011.01.16
впн через впн


2-1287417521
кроссман
2010-10-18 19:58
2011.01.16
Выделить строку в listbox


2-1287823977
Константинов
2010-10-23 12:52
2011.01.16
ADOConnection доступ к файлам БД


2-1287087443
Alik
2010-10-15 00:17
2011.01.16
Подвисание при работе с большим динамическим массивом байтов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский