Должен ли бизнес-объект знать о соответствующем объекте контракта

У меня есть несколько бизнес-объектов и несколько очень похожих соответствующих объектов контракта данных для передачи данных по сети через службу WCF.

Какой механизм следует использовать для получения заполненных объектов контракта данных из бизнес-объектов?

В идеальном мире должен ли уровень контракта данных знать о бизнес-уровне?

or

Должен ли бизнес-уровень знать об уровне контракта данных?

or

Должен ли быть еще один уровень сопоставления со статическими методами, такими как GetDataContractFromBusinessObject?


person MStodd    schedule 09.11.2010    source источник
comment
См. stackoverflow.com/questions/11681475/, которая объясняет (с примером), как клиенты будут ломаться, если у вас нет уровня преобразования.   -  person LCJ    schedule 12.04.2013


Ответы (2)


Я большой поклонник упомянутой вами техники «сопоставление слоя со статическими методами». Тогда ваши бизнес-объекты и контракты данных никоим образом не зависят друг от друга.

person benjy    schedule 09.11.2010

Я часто добавляю производный класс для обработки потребления данных из определенного резервного хранилища на моем бизнес-уровне.

Другим вариантом является представление уровня данных интерфейса, понятное бизнес-классу. А затем пусть ваш уровень данных реализует этот интерфейс. Я предпочитаю этот метод, так как намного проще, когда ваш бизнес-уровень взаимодействует с абстрактной версией вашего уровня данных, чем когда ваш уровень данных понимает ваши бизнес-объекты.

person rerun    schedule 09.11.2010