问题标签 [domain-driven-design]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
584 浏览

nhibernate - 在数据层访问多个数据提供者

我正在开发一个使用 DDD 理念开发的业务应用程序。数据库通过 NHibernate 访问,数据层使用 DAO 模式实现。

UML 类图如下所示。

UML 类图 http://img266.imageshack.us/my.php?image=classdiagramhk0.png http://img266.imageshack.us/my.php?image=classdiagramhk0.png

不知道设计好不好。你怎么看?

但问题不在于设计好不好。问题是在启动应用程序后,IDaoFactory在表示层中实例化并作为参数发送到演示者类(使用 MVC 模式设计),如下所示

只使用一个数据提供者(这只是一个数据库)很简单。但是现在我们也应该从 XML 中获取数据。在开发的下一阶段,我们应该连接到不同的 Web 服务并操作传入和传出的数据。

来自 XML 的数据将使用一个枚举键来获取。XMLLoader我们向数据层添加一个名为的类ILoader,并向域添加一个接口。XMLLoader有一个方法,其签名是

如果我们在表示层中使用 XMLLoader 实例化 ILoader,如下所示,我们必须将其发送到将从数据层获取一些 XML 数据的对象。

实现 Web 服务访问类之后

参数将及时增长。我认为我可以在一个类中保存所有数据访问对象的实例并将其传递给所需的演示者(也许单例模式也可以提供帮助)。在领域层必须有一个这样的类,

在主类中,可以使用此设计进行实例化,如下所示

你觉得这个设计怎么样,或者你能给我推荐一个不同的设计吗?

感谢所有回复...

0 投票
3 回答
3897 浏览

domain-driven-design - 我们都在寻找相同的 IRepository 吗?

我一直在尝试想出一种方法来编写适用于各种数据存储的通用存储库:

我想针对每个中的相同 POCO 域类工作。我也在考虑一种类似的方法,每个域类都有自己的存储库:

我的问题:1)第一种方法是否可行?2)第二种方法有什么优势吗?

0 投票
2 回答
2124 浏览

domain-driven-design - 数据传输对象、域对象和存储库

我试图弄清楚所有这些是如何协同工作的。我知道 DTO 基本上只是域对象来回传递给表单等的数据容器。域对象是否包含 DTO 或 DTO 和域对象恰好具有将手动映射的所有相同属性?

如果我在服务中公开我的 DTO 类型,如何在不为客户端上的每个 get/set 操作创建往返的情况下使用 getter 和 setter?我知道你可以有一个很长的构造函数,但是如果你有超过 7 个属性,那会变得很丑。

在实现存储库模式时,我是传入 DTO 还是域对象?

0 投票
9 回答
9206 浏览

.net - 领域驱动设计示例(尤其是 .NET)

好的,所以我已经订购了 Applying Domain-Driven Design and Patterns: Using .Net,但是当我等待它到来时,我正在考虑开始在我当前的项目中应用这些技术。我现在真的很好地掌握了这些概念,但是当我尝试应用它们时,我会陷入执行并最终在各种项目中泄露我的责任。因此,我正在寻找可以指导我朝着正确方向前进的资源,尤其是具有我可以处理的实际代码的示例项目。我记得 Alt.Net 世界中有一个示例站点,它有一个人们可以浏览但似乎找不到的真实工作项目?有没有人有那个链接,或者他们可以分享的任何其他链接?

编辑:我从 DomainDrivenDesign.org 站点(尽管它是基于 Java 的)以及下面概述的示例中找到了这个示例应用程序。

如果有人知道在哪里可以找到它,我还在寻找 Alt.Net 示例应用程序吗?

0 投票
5 回答
1101 浏览

agile - 如何在 BizTalk 中仍然使用 DDD、TDD?

我刚开始在工作中接触 BizTalk,并希望继续使用我学到的关于 DDD、TDD 等的所有知识。这是否可能,或者我在创建管道和编排之类的东西时总是必须使用类似 Visio 的编辑器?

0 投票
4 回答
368 浏览

oop - 帮助!邪恶的服务正在杀死我的对象

当我相信关于封装和多态的美国梦时,Web 服务的入侵用 RPC 调用冲走了我的对象......

当我珍惜复活的 PONO 时,被称为代理对象的丑陋野蛮军队征服了我的土地......

后来,服务器端的DDD和NHibernate似乎恢复了平静,但是SilverLightning袭击了我的城堡,现在又饿了,美味的懒加载只在我的记忆中,多年来我的可怜对象不得不再次消耗陈旧的服务...

而且我充满了恐惧……世界越来越多地谈论其他一些可怕的程序怪物……他们称它们为“工作流程”……

如何保存我的对象?从字面上看,我不向任何人提供任何服务。我正在构建一个简单的小系统。我不想使用服务来查找我的数据。我不想使用服务从我的 Web 界面与我的 Web 界面交谈……因为我不想使用蜗牛邮件与我的同事交谈。

有任何想法吗?你设法保存你的对象吗?您是否设法节省了比您的域模型更多的东西?(希望你管理了后者......)

更新: 如果这不清楚......我们有一个被杀死的架构,因为一切都使用基于 Web 服务。有一种时尚“OO - 已死”,服务规则。在 SOA 中,当一切都关注动词(“操作契约”)时,仍然很难关注对象。我觉得很难照顾你的设计。

0 投票
2 回答
134 浏览

architecture - 如何在您的域类中实现“最后 20 件事”属性?

假设我需要为 StackOverflow 实现域模型。

如果我在做 ORM,我如何定义(和映射)属性来获取“最后的评论”和其他“最后”的东西?在我看来,这应该反映在域模型中。

有时我可能需要“所有评论”...

0 投票
4 回答
1087 浏览

silverlight - 如何重新架构 ASP.NET 应用程序的 Hibernate DAO 层以将其移动到 Silverlight?

最后尝试得到这个答案。

我有一个简单的 ASP.NET 应用程序,它使用 Hibernate 进行数据访问。GUI 可以调用客户对象上的方法,例如“CalculateTotalSumOfOrders()”。延迟加载(即使它不是最佳的)对我有用,当在域对象中引用 Orders 和 OrderLines 集合时,它们将自动从数据库中获取。

现在让我们假设我正在将同一个应用程序重写为 Silverlight,因为它看起来比 ASP.NET 更好。我不再能够进行延迟加载或数据访问,因为 Silverlight 客户端在浏览器中运行。如何在不考虑使用何种服务将数据导入 Silverlight 客户端的情况下解决此问题?

0 投票
6 回答
13233 浏览

domain-driven-design - 何时使用领域驱动开发和数据库驱动开发?

什么时候应该使用数据库驱动开发以及什么时候应该使用域驱动开发,任何人都可以有好的答案吗?这两种发展方法在各自的领域都有其重要性。但我不太清楚哪种方法适合哪种情况。有什么推荐吗?

0 投票
3 回答
539 浏览

constructor - DDD + 公共无参数构造函数——它们应该存在吗?

DDD 的租户之一是不允许您的对象进入无效状态。对我来说,这意味着不应该有一个公共的无参数构造函数,因为这将是一个 99% 的时间处于无效状态的对象。

这是前进的好方法吗?当您只想快速更新课程时,它会变成一个巨大的 PITA。