2013-03-10 3 views
0

На ответах отправленного вопрос: «What is the difference between data-centric and object-oriented application models?» Я читаю:Почему данные-ориентированные плохие?

когда вы упоминая «сообщение проходит» пример, вы сказали, один способ ее реализации является ориентированных на данные (хотя считайте это плохой способ).

Почему данные ориентированы плохо? Зная, что ориентированный на данные подход, выпущенный RTI, является интересным подходом к распределенным приложениям реального времени.

Является ли альтернативное сообщение ориентированным? ориентированное на приложение? или?

+0

«Ориентированный на данные подход, выпущенный RTI» - вы имеете в виду стандарт OMG DDS, который имеет множество реализаций. –

ответ

1

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

В оживленной сети, если мы постоянно ссылаемся на одни и те же объекты, чтобы выполнить всю работу, мы быстро разработаем очереди задач, которые будут решаться намного быстрее, если бы различные обязанности были разделены между несколько классов.

Кроме того, это не соответствует принципам проектирования, таким как Dijksta's Separation of Concerns, которые считаются хорошей практикой.

+0

, но ориентированный на данные - это действие для записи и чтения из базы данных, в то время как оно может быть реализовано по протоколу подписи, например, опубликовать подписку – user2151986

+0

. Это действительно зависит от того, насколько я думаю. Обычно Data Centric также означает что-то другое для меня. В подходе Data Centric вы часто обнаруживаете принцип неиспользуемости объектов. Это похоже на запись класса Object для каждой строки в расширенном листе или просто запись объекта, представляющего лист распространения. Посмотрите, как он формируется таким образом: Data Centric означает сбор средств данных и, следовательно, означает создание базы данных, создавая проект Evens Design. Поэтому Data Centric лучше всего подходит для создания Хранилищ вокруг них. –

+0

@ christopher Я должен уважительно не соглашаться. Ценность данных не обеспечивает уровень детализации. Пользователь может разделить функциональность на любое количество классов, которые он желает. Кроме того, проекты, ориентированные на данные, могут, безусловно, содержать методы. Однако разница состоит в том, что методы здесь для удобства, а данные (члены) представляют собой внешний интерфейс класса. –

0

Объекты содержат как данные, так и методы, способствующие более «естественному» RL-совместимому способу мышления о программировании, у вас есть не только класс «дозатор», в котором хранятся сведения, что класс досье также имеет методы доступа что данные как readPage(int pageNr).

Чтобы отказаться от методов написания, возможно, возможно и целесообразно в некоторых случаях, например, чтобы не использовать отражение, которое я объявлял DataTransferObject, но большую часть времени это пустая трата потенциала.

+0

, но ответственность за данные, ориентированную на архитектуру, позволяет методам читать эти данные?(например, предоставление функции чтения страницы) – user2151986

+0

извините, я думаю, что вам не хватало глагола: имеет ли «централизованная архитектура» «ответственность»/«подразумевает» ответственность/«требует» ответственности? ответ по определению не является, но в этом весь смысл самоограничения архитектуры я не могу рекомендовать, но для очень конкретных случаев. –

+0

, но можете ли вы объяснить, что такое связь между ориентированным на данные и ориентированным на сообщение промежуточным программным обеспечением? так что могу ли я сказать, что ориентированный на данные фактически находится под амброзией MOM? – user2151986

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