问题标签 [domain-model]

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 回答
572 浏览

architecture - 领域模型 - 标识符关系与分层对象

在充实一个假设的域模型时,我发现自己想知道关联域对象的更好方法是让父域对象包含一个指针(子域的标识符),还是使用子对象在父对象内构建复合。

我可以看到每种方法的优缺点,主要是大小与复杂性之间的权衡,归根结底。我倾向于更多地倾向于标识符关系方法,因为我没有预料到需要进行任何类型的延迟加载。

尽管不直接相关,但域对象是简单的 POCO(POJO 的 .NET 等效项)。它们被明确标记为可序列化,因为它们很有可能最终会在应用程序域之间交叉。在我看来,LINQ 使关系标识符方法可行,如果 LINQ 不可用,我根本不会考虑它。

任何想法将不胜感激!

编辑:还有一些想法可能让我倾向于仅使用标识符的方法。首先是对象的缓存策略。父对象和子对象完全有可能具有不同的 TTL,这由它们的策略定义。第二个是引用持有可能会限制对象重用,因为同一个孩子可能被多个父母持有——在可重用数据的情况下。这两者也与序列化对象的整体大小有关。

0 投票
3 回答
1425 浏览

linq - 领域模型 + LINQ to SQL 示例

我想知道是否有一个企业应用程序示例,使用业务逻辑层中的域模型和用于数据映射器的 LINQ 设计?我不太确定如何将 LINQ to SQL 的 UnitOfWork 功能与来自业务层的业务对象结合使用。

谢谢,卢锡安

0 投票
2 回答
813 浏览

domain-driven-design - 领域模型保存

最近读完了 Eric Evans Domain Driven Design(内容丰富,非常有趣),但是在完成本书后来到第一个重大项目,并遇到了如何处理域模型保存的问题?

我很欣赏服务/存储库的使用以及它们如何帮助模型,但他们将如何处理模型保存?

我以前的域模型保存将遵循以下方法调用结构;

父类.保存 {

ParentClassDB.保存

ChildObject1.Save

ChildObject2.Save

}

服务是否控制对子对象调用适当的保存例程?

0 投票
4 回答
1182 浏览

.net - LINQ 实体作为业务对象 - 优点/缺点

Visual Studio (sqlmetal) 生成的 dbml 文件带有映射到数据库表的实体。在您看来,这些类适合用作领域模型类吗?还是我们应该避免它们并将它们仅隔离到数据访问层?

谢谢

0 投票
1 回答
189 浏览

c# - NHibernate 遍历问题 - 创建一个流畅的界面

我现在对 NHibernate 和我的领域模型感到困惑。我在脑海中想象着一个不错的 API,但我很难让它成为现实。这是我要完成的示例:

那么 Foreach 循环中的这些东西是否有意义?:PI 感觉我正在尝试用我的类创建某种流畅的界面。我正在使用 NHibernate 进行持久性,所以这样的事情是否可能,或者我只需要让事情变得更简单吗?

0 投票
4 回答
1298 浏览

php - 处理贫血的域模型

我试图将我的 DAL 与我的业务层分开,并且在这样做时,我决定避开任何 ActiveRecord 方法并采用 DataMapper 方法。换句话说,我的域对象不会处理自己的持久化。这样做,我似乎在侵犯“贫血域模型”反模式。例如,我的程序中的一个实体是一个组织。

一个组织可以这样表示:

所以基本上这个组织除了充当一些数据的“包”(正如 Martin Fowler 所说)之外什么都不做。在 PHP 世界中,它只不过是一个美化的数组。与之相关的行为为零。

而在程序中的行为,我一直坚持“服务级别”类,比如 OrganizationService,它主要充当这些对象和 DAL 之间的中介。

除了 PHP 的潜在扩展问题(我确实有其他原因为什么我坚持在这些对象中“装袋”我的数据),这种方法完全不可行吗?

在这些情况下,您如何处理您的领域模型?也许一个组织一开始就不属于我的领域?

0 投票
6 回答
1801 浏览

language-agnostic - 我们应该在持久化领域模型时使用外键约束吗?

不久前,我与同事讨论了域模型的持久性以及我们是否应该在数据库级别强制执行外键约束。

我的第一反应是,关系数据库的使用本身就意味着强制执行这种约束,但有些人认为数据库应该被视为一种持久性机制,因此我们应该避免在其中放置任何业务逻辑。我们最终没有使用外键约束。

这是我的问题(我希望它不是太笼统):在这些情况下强制执行关键约束是否被认为是一种好习惯?

0 投票
2 回答
934 浏览

c# - 创建 LINQ 实体类时损坏 POCO 域模型?

假设我有一个从 C# 类创建的域模型,如下所示:

除了模型,我还为 IoC 定义了存储库接口类。

现在,我正在尝试使用 LINQ 映射将此 POCO 域模型转换为一组实体类。(在我正在阅读的关于 MVC 的书中推荐了这种方法。)在上面的示例中,这很容易使用一些属性而不影响类的“普通旧度”:

当我开始映射关联、更改修改等时,问题就来了。看来我很快就破坏了域模型的原始概念,而只是简单地创建了一组 LINQ-to-SQL 类。我错过了什么吗?这些类仍然是业务逻辑的正确位置吗?我是否仍然能够并且应该继续从非 LINQ、非 DB 源将数据加载到这些类中?

谢谢

0 投票
3 回答
1369 浏览

asp.net-mvc - AutoMapper 将域模型展平,但它会做相反的事情吗?如果不是,那是什么?

我一直在阅读 AutoMapper,因为我在这里回答了我之前的一个问题。

它说 AutoMapper 将复杂的域模型展平,但我需要一些相反的东西。我需要将我的视图模型(扁平域模型)连接到复杂的域模型,以便我可以快速将视图模型转换为域模型。

有没有类似于 AutoMapper 的东西,它采用视图模型并将其变成复杂的域模型?

0 投票
3 回答
528 浏览

python - 有哪些好的 Python 库可以满足以下需求?

有哪些好的 Python 库可以满足以下需求:

  • MVC
  • 领域抽象
  • 数据库抽象
  • 视频库(仅用于创建缩略图)

我已经知道 SQLAlchemy 对数据库抽象非常有用,所以除非你想推荐一个更好的,否则不要打扰它。

编辑:这似乎很愚蠢,但我说的是用于 GUI 而不是 Web 的 MVC,只是为了澄清而提及

编辑: MVC 部分是否还包含 GUI 部分,或者我可以为 GUI 使用单独的库,如 PyQt