2013-04-03 5 views
1

Хотя существует множество ответов stackoverflow относительно этого вопроса, редко они четко различают разницу между ними. В результате у меня возникает путаница в их понимании.Разница между бизнес-объектом и объектом передачи?

Здесь я работаю с этим pattern

Обратимся к рисунку 9.1, как бизнес-объект и объект передачи используются. В то время как определение обоих приведено в строках как:

обычно считается классом, который представляет сущность, например. Книгу или магазин. Такой класс имеет определенные свойства, такие как цена, цвет, ширина, номер isbn и т. Д. В Java или .NET он состоит из так называемых сеттеров и геттеров

Теперь DTO имеют одинаковое определение. Мне кажется, как боб, представляющий объект. Таким образом, в автономном приложении может быть бизнес-объект и DTO. Пожалуйста, проведите различие между ними в отношении ссылки на шаблон выше.

+1

J2EE - это подсказка: это анти-шаблон EJB 1.0, а не шаблон для эмулирования. J2EE - старинный 1999; теперь это Java EE. Я бы сбежал от этой рекомендации, если бы был вами. – duffymo

+0

Точно. Согласно уведомлению об авторских правах, указанная вами статья в последний раз была обновлена ​​в 2002 году. – meriton

ответ

3

DTO используется для переноса данных с одного уровня на другой (например, с уровня доступа к данным на модель).

A BO содержит Бизнес-логику.

Но самое главное в этом шаблоне - отделить слой, чтобы упростить работу с программным обеспечением.

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

1

Эта статья определяет:

BusinessObject представляет клиента данных. Это объект, который требует доступа к источнику данных для получения и хранения данных. Бизнес-объект может быть реализован в виде сеансового компонента, сущности-компонента или какого-либо другого объекта Java в дополнение к сервлету или вспомогательному компоненту, который обращается к источнику данных.

и

Это представляет собой Transfer Object, используемый в качестве носителя данных. DataAccessObject может использовать объект передачи для возврата данных клиенту. DataAccessObject может также получать данные от клиента в Transfer Object для обновления данных в источнике данных.

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

+1

Да, я видел, но я думал о структуре обоих типов классов. если оба будут состоять из геттеров и сеттеров, почему бы просто не использовать их. Я новичок в этой концепции, поэтому просто пытаюсь узнать большую картину :) – Hoody

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