Шаблон проектирования / решение для загрузки данных

Я работал над несколькими проектами, которые включают загрузку данных, иногда удаленно, иногда локально, иногда JSON, иногда XML. Проблема, с которой я сталкиваюсь, заключается в том, что из-за скорости разработки и изменения взглядов различных клиентов я считаю, что мои проекты слишком жесткие, и я хотел бы, чтобы они были более гибкими. Я пытался придумать многоразовое решение для загрузки данных и хотел бы получить совет, так как полагаю, что у многих из вас была такая же проблема.

Я бы хотел создать общий Абстрактный класс LoadingOperation , который имеет переменные-члены типа Parser и Loader , которые имеют методы parse () и loadData () соответственно. Классы Parser и Loader - это интерфейсы и классы, которые реализуют их, могут быть XMLParser и JSONParser, LocalLoader и RemoteLoader и т. Д. С чем-то вроде этого я хотел бы иметь новый класс, который расширяет LoadingOperation для каждой вещи, которая должна быть загружена, будь то локальный файл XML, удаленный JSON или что-то еще.

Проблема в том, что конкретная реализация Parser не может возвращать пользовательские типы данных без нарушение полиморфного поведения класса LoadingOperation . Я возился с дженериками и объявлял подклассы LoadingOperation , например

class SpecificLoader extends LoadingOperation

, и делал аналогичные вещи с классами Parser , но это кажется немного странным.

Есть ли у кого-нибудь предложения о том, что я делаю неправильно / мог бы сделать лучше. Я хочу иметь возможность быстро реагировать на изменение спецификаций (игнорируя тот факт, что они не должны так сильно меняться!) И иметь логическое разделение кода и т. Д.

спасибо за любую помощь!

edit: question also спрашивается здесь текст ссылки

6
задан Dori 2 December 2010 в 07:11
поделиться