2014-01-09 2 views
-1

Я искал некоторые рекомендации по разработке чистой объектной модели домена. Под «чистым» я имею в виду модель домена (или бизнеса), которая не загромождена связью постоянства базы данных, сериализации/десериализации xml/json, материала для ввода зависимостей. Например, я прочитал несколько «практических» руководств по внедрению REST API. Когда все они доходят до реализации «модели», все они получают некоторые аннотации о преобразовании из «pojo/poco» в представление xml/json через [XmlAttribute] или делают поле более удобным для пользователя в пользовательский интерфейс через атрибут [Display/Display Type]. Платформа не имеет значения, я видел загромождение в мире Java (не знакомы с другими языками сценариев).Рекомендации по чистой модели домена

Я знаю шаблон проектирования объекта передачи данных, поскольку эти объекты могут использовать эти атрибуты, но является ли это единственным методом? Кажется, что DTO требует много отображения объектов в/из представления на бизнес-уровень. Если это то, что нужно, чтобы иметь чистый доменный слой, тогда он отличный, просто ищет обратную связь.

Благодаря

+2

WCF будет вызывать данные, если DTO остается аннотированным по умолчанию с 4.0 (по крайней мере). Всегда лучше быть явным, чем предполагать, что какая-то магия случится иначе, зачем нужна имплицитная экспозиция? –

+0

Я не понимаю нисходящий голос. Это стало тенденцией к SO, чтобы проголосовать за вопросы, которые имеют плотный текст. – aquaraga

+0

@aquaraga - я не сделал ни слова, но ваш комментарий будет лучше подходит для MSO. По моему опыту, тренд на SO заключается в том, чтобы опросить вопросы, которые показывают небольшой контекст или усилие, специфичные для использования. Это особенно касается вопросов, которые указывают на несколько языков. Если вы не знаете, на каком языке находится ваш код, вы, вероятно, должны размещать на PSE. Мои участники по MSO могут или не могут согласиться. –

ответ

2

Простой истина заключается в том, что все это «аннотациях беспорядка» встало из отказа от всех «XML беспорядка».

Принимая как JPA, так и JAXB в Java в качестве примеров, все эти аннотации могут быть заменены внешними файлами XML, описывающими одни и те же метаданные для базовых фреймворков. В обоих случаях фреймворки предлагают «нормально» значения по умолчанию для неавтоматизированных данных, но правда мало, они действительно удовлетворены сопоставлениями по умолчанию для конфигурации по умолчанию, предлагаемым каркасами, и, таким образом, требуется более явная конфигурация.

И вся эта конфигурация должна быть где-то захвачена.

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

В конце концов, с точки зрения Java, модели домена являются «справедливыми» объектами, аннотации не имеют никакого отношения, в общем, вне соответствующих фреймворков. Но, по правде говоря, всегда существует некоторая связь с каркасами, и они имеют тенденцию влиять на детали реализации модели. Это не особенно ярко, но простой факт заключается в том, что, когда может быть два способа моделирования чего-то, и один из способов «более дружелюбен» к структуре, для многих это достаточно, чтобы отклонить решение идти в этом направлении, а не борется за чистоту над рамкой.

Смежные вопросы