Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 19.11.2019, 20:46   #1
ashes1
Новичок
Джуниор
 
Регистрация: 19.11.2019
Сообщений: 5
По умолчанию Помогите с ООП паттерном

привет

Есть задачка реализовать обработку xml отчетов от разных источников. Каждый отчет имеет разную структуру, но одни и те же типы данных.
Нужно это все спарсить и засунуть в БД.

Отчетов - десяток. Делать это процедурным стилем = плодить кучу повторного кода, т.к. для каждого отчета все действия одинаковые: скачать xml файл по ссылке, достать данные, записать в БД, записать логи. Разница в коде будет только на этапе "достать данные".

Хочется совет разбирающегося в ООП человека, какой ООП паттерн тут использовать. Нужна только наводка, с реализацией разберусь сам.
ashes1 вне форума   Ответить с цитированием
Старый 19.11.2019, 20:50   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,488
По умолчанию

полиморфизм

вам же просто надо создать разные функции парсинга с одним интерфейсом.
Цитата:
Сообщение от ashes1 Посмотреть сообщение
Делать это процедурным стилем = плодить кучу повторного кода
с чего вдруг?

Последний раз редактировалось Alex11223; 19.11.2019 в 20:52.
Alex11223 на форуме   Ответить с цитированием
Старый 19.11.2019, 21:03   #3
ashes1
Новичок
Джуниор
 
Регистрация: 19.11.2019
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
полиморфизм

вам же просто надо создать разные функции парсинга с одним интерфейсом.
с чего вдруг?
полиморфизм - само собой. Я подумал быть может паттерн какой подойдет, который позволит решить эту простую задачу максимально красиво, заодно получить опыт, т.к. из паттернов кроме синглтона ничего не применял и даже в теории плохо понимаю.
ashes1 вне форума   Ответить с цитированием
Старый 19.11.2019, 21:28   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,488
По умолчанию

да придумайте любой способ и наверняка кто-то назвал это каким-то паттерном )

вам же просто надо выбирать функцию, как угодно, хоть словарь типа

Код:
[
    'source1' => func1,
    'source2' => func2,
];
factory, strategy из паттернов GoF.
Alex11223 на форуме   Ответить с цитированием
Старый 19.11.2019, 21:49   #5
ashes1
Новичок
Джуниор
 
Регистрация: 19.11.2019
Сообщений: 5
По умолчанию

как раз про фабрику и думал.
Хочется именно попрактиковаться в ООП, а решение с функциями - рабочее конечно, но не красивое и не гибкое. В одном отчете для получения xml необходимо пройти bacis-авторизацию к примеру. В процедурном стиле это будет костыль в виде if else,а а в ООП можно переопределить метод получения xml-ки в наследуемом классе.
ashes1 вне форума   Ответить с цитированием
Старый 19.11.2019, 22:14   #6
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,488
По умолчанию

Цитата:
Сообщение от ashes1 Посмотреть сообщение
В одном отчете для получения xml необходимо пройти bacis-авторизацию к примеру.
так это другой этап.
Цитата:
Сообщение от ashes1 Посмотреть сообщение
в наследуемом классе
а если понадобится и basic, и что-то еще сразу?
Наследование как раз добавляет кучу проблем.

Последний раз редактировалось Alex11223; 26.11.2019 в 12:58.
Alex11223 на форуме   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WPF с паттерном MVVM oldsnowman WPF, UWP, WinRT, XAML 10 08.07.2019 14:05
Перевод нужен срочно помогите ) в течение 2 часов от Паскаля на Турбо СИ нужно помогите Жанибек Помощь студентам 14 01.04.2015 18:23
Помогите создать програму для роботы с файлами, пожалуйста помогите нужно очень срочно Сергей Человек Фриланс 3 06.07.2009 19:30