2008-10-10 2 views
0

im создает класс Factory, который будет конструировать и возвращать объект. Я обычно делаю все данные на уровне доступа к данным, но я не думаю, что смог бы достичь своей цели и все-таки сделать это. Я хочу использовать SQLDataReader для быстрого считывания данных и заполнения объекта, который будет возвращен с завода. Это глупая идея? Есть ли лучший подход? Я бы предпочел не просто возвращать DataSet из DAL, если это возможно, или это вопрос производительности и ремонтопригодности?Factory Class - Должен ли я заполнить свой объект данными здесь?

ответ

1

В большинстве случаев это хорошая идея, так как этот способ имеет два основных преимущества:

  1. Таким образом, вы можете отделить доступ к данным и бизнес-логики, что означает, что если вы меняете базы данных разработки алгоритмов верхнего слоя не нужно менять.

  2. С точки зрения точки OO вы преобразуете некоторые чистые данные в объекты и также можете добавить поведение к объектам, что делает код более удобным для обслуживания и повторного использования.

0

Если вы уверены, что собираетесь использовать все данные, которые вы загружаете из SQLDataReader, то да, вы могли бы это сделать во время строительства на заводе. Однако, если в наборе данных имеется много полей, в которых будет использоваться только меньшинство, тогда спрос на загрузку данных во время вызова аксессуаров будет лучше использовать ресурсы.

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

+0

Большое спасибо за ваш комментарий, вот что я попробую. – schmoopy 2008-10-10 00:51:15

0

Я бы сказал, что это зависит от ожидаемого использования Фабрики. Если это фабрика на вашем уровне доступа к данным, которая будет использоваться для заполнения бизнес-объектов данными из базы данных, то да, это место для этого. (Рисунок IRepository - это что-то вроде этого ... вроде).

Если ваш завод не предназначен для жизни рядом с кодом доступа к данным, я бы сохранил их отдельно. Помните Single Responsibility Principle: у объектов должна быть только одна причина для изменения. Если фабрика просто заполняет объекты данными, то это подходящее использование, однако, если оно заполняет объекты данными в дополнение к другим вещам, тогда лучше не добавлять данные.

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

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