Главная страница
    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.07 c
15-1286051355
Юрий
2010-10-03 00:29
2011.01.16
С днем рождения ! 3 октября 2010 воскресенье


2-1287766980
volkafff
2010-10-22 21:03
2011.01.16
Обращение ко всем записям.


15-1285865919
картман
2010-09-30 20:58
2011.01.16
я думал там все на века(((


2-1287575888
Evgeniy Efimchenko
2010-10-20 15:58
2011.01.16
Работа с типизизованными файлами


6-1233660203
FireMan_Alexey
2009-02-03 14:23
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский