2010-09-09 67 views
2

我正在写一个客户端/服务器系统。该服务器具有DAL/BLL设计。客户端负责呈现数据对象并提供对话框和向导以允许用户更新这些对象(即添加/编辑用户)。DAL/BLL和客户端/服务器:客户端是否应该使用BLL或DAL对象进行演示?或者也许另一层(数据传输对象?)

最初我以为我只是让DAL对象有一个通用的数据提供者对象,以便它们可以被客户端以及服务器使用。例如,当数据对象被服务器使用时,数据库就是数据提供者;当数据对象被客户端使用时,服务器就是数据提供者。所以一个对象在表现层被改变,例如“user”:user-> setName(“Fred”),然后像这样提交它user-> commit(),commit方法调用数据提供程序的提交方法,然后对该对象进行编码并将其发送到服务器。服务器然后用业务层对象“装饰”它并从那里继续。

我目前有这个工作作为原型,DAL对象定义在一个共享的项目中,由客户端和服务器使用。服务器然后注入它的数据提供者(使用数据库),并且客户端注入使用服务器的数据提供者。

我想知道这是否是一种合理的方法?我一直在想,如果我需要另一层,而不是让DAL对象直接暴露给客户端。也许是一个数据传输对象层,它会给我3层:数据访问对象,业务逻辑对象和数据传输对象。

谢谢。

回答

1

这是不是一个好主意暴露'内部对象'像使用的对象/返回购买DAL。更好地保留隐藏在客户端的所有内部对象,并拥有一组用于客户端 - 服务器通信的对象。将一个对象转换为另一个对象可能会有一些额外的工作,但是如果服务器和客户端不一起升级,将会使系统升级变得更容易。

+0

+1在非trival系统中,要在这些图层之间交换的数据将有所不同。如果你确实想重新使用一些东西,那么一个接口(实现这些对象)可能没问题 - 但我从来没有这样做过。 – 2010-09-09 22:11:14

相关问题