Я пишу систему клиент / сервер. Сервер имеет дизайн DAL / BLL. Клиент несет ответственность за представление объектов данных и предоставление диалогов и мастера, позволяющих пользователю обновлять эти объекты (т.е. добавлять / редактировать пользователя).
Сначала я думал, что у объектов DAL будет универсальный объект-поставщик данных, чтобы они могли использоваться как клиентом, так и сервером. Например, когда объект данных используется сервером, база данных является поставщиком данных; когда объект данных используется клиентом, сервер является поставщиком данных.
Таким образом, объект изменяется на уровне представления, например, «пользователь»: user-> setName («Fred»), а затем фиксирует его как этот пользователь-> commit (), метод commit вызывает провайдера данных Метод commit, который затем кодирует объект и отправляет его на сервер. Затем сервер «украшает» его объектом бизнес-уровня и продолжает с него.
В настоящее время я работаю как прототип с объектами DAL, определенными в общем проекте, который используется как клиентом, так и сервером. Затем сервер внедряет своего поставщика данных (который использует базу данных), а клиент внедряет поставщика данных, который использует сервер.
Мне интересно, кажется ли это разумным подходом? Я продолжаю задаваться вопросом, нужен ли мне другой слой вместо того, чтобы объекты DAL были выставлены непосредственно клиенту. Может быть, слой объектов передачи данных, который дал бы мне 3 уровня: объекты доступа к данным, объекты бизнес-логики и объекты передачи данных.
Спасибо.