Я создаю приложение, которое сможет выводить данные в формат RSS, а также более подробный пользовательский формат XML. У меня есть два противоречивых подхода к тому, как я создам иерархию объектов.Подходы к построению иерархии объектов
Вариант 1 - Построить иерархию в соответствии с тем, что требуется каждому формату (RSS/XML)
FeedItem (RSS properties)
title
description
link
^
|
DetailedFeedItem (Detailed XML properties)
expirationDate
^
|
Article (Detailed XML Article-specific properties)
paragraphs
Хотя это решение работает, он чувствует, как объекты связаны с их визуальными требованиями (RSS/XML).
Вариант 2 - Построить иерархию, основанную на более общей абстракции:
Item
title
description
expirationDate
^
|
Article
paragraphs
Такой подход представляется более гибкой и простой для меня, но потом, когда я построения RSS, я могу иметь свойства, которые не будут быть заполнен (expirationDate, абзацы). Если я перейду с вариантом 2, я подумывал создать класс, такой как RSSMapper, который возьмет объект и отобразит только необходимые свойства в формат RSS - например, RSSMapper.mapArticle (статья статьи).
Как вы думаете, что было бы лучшим путем?
Спасибо за это. Я поеду с вариантом 2 и включу шаблон адаптера. – jexx2345