Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

привет

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

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

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

полиморфизм

вам же просто надо создать разные функции парсинга с одним интерфейсом.
Цитата:
Сообщение от ashes1 Посмотреть сообщение
Делать это процедурным стилем = плодить кучу повторного кода
с чего вдруг?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

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

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

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

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

Код:
[
    'source1' => func1,
    'source2' => func2,
];
factory, strategy из паттернов GoF.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 19.11.2019, 20:49   #5
ashes1
Новичок
Джуниор
 
Регистрация: 19.11.2019
Сообщений: 5
По умолчанию

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

Цитата:
Сообщение от ashes1 Посмотреть сообщение
В одном отчете для получения xml необходимо пройти bacis-авторизацию к примеру.
так это другой этап.
Цитата:
Сообщение от ashes1 Посмотреть сообщение
в наследуемом классе
а если понадобится и basic, и что-то еще сразу?
Наследование как раз добавляет кучу проблем.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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