数据传输对象 - 例外

时间:2014-01-03 13:27:04

标签: c# dto

我在我的应用程序中使用DTO模式。我没有创建任何专用的汇编程序来从我的域实体构建dto,而是将域实体传递给DTO并允许它构建并返回一个适当构造的DTO。

这种方法可以吗?

DTO是否可以抛出异常?

1 个答案:

答案 0 :(得分:2)

如果没有更多详细信息,对此进行评论有点困难,无论如何,这可能取决于您的情况和个人喜好。

但令我印象深刻的是,这可能会将您的一些内部工作暴露给客户。例如,假设您通过将域实体作为参数传递给DTO类中的构造函数来执行此操作,该构造函数对于接收DTO的客户端也是可见的,域实体类也是如此,因为它将需要为DTO所知,它能够接受它作为参数(必须存在对它的引用才能使它成为有效参数)。

我不知道这对你来说是不是一个问题(或者如果这甚至是你如何实现你的逻辑),但它可能值得思考..

更新

至于在DTO中抛出异常和逻辑 - 我个人的偏好是将这类事物保持在最低限度。同样,这可能有点主观,但我至少可以想到两个原因:

关注点的基本分离:DTO应该是一个简单的传输对象,仅此而已。

避免依赖:根据我的经验,如果你在这样的地方添加逻辑,你最终会添加你将后悔的引用。由于您可能希望使用并从几个不同的项目中引用DTO类,因此您不希望从DTO引用其中任何一个项目,因为这会隐式地在这些项目之间添加引用 。在DTO中避免任何逻辑将保证它不依赖于其自身组件之外的任何东西。