refactoring - 在领域驱动设计中,您如何考虑您的领域(命名空间)?

标签 refactoring domain-driven-design

在领域驱动设计中,您如何考虑您的领域(命名空间)?

我一直在转向以下概念:

Project.Entity
  Project.Entity.Abstracts
  Project.Entity.Entities
  Project.Entity.Extensions
  Project.Entity.Immutables
  Project.Entity.Interfaces
  Project.Entity.Repositories

例如,我在 CMS 中有一个名为“Content”的实体。因此,我将创建一个名为 Project.Content 的项目,并将类分解为如下所示:
interface IContent
class Content : IContent

interface IContentRepository
class ContentRepository : IContentRepository

这个“内容”实体模型将有自己的命名空间。

但是,我发现它在具有十多个“实体”模型项目(尝试 18 个)的大型企业环境中不能很好地扩展。我最终得到了一个包含十几个项目的解决方案,其中一些只有 2 或 3 个类(即 UrlRewriter)。此外,我发现自己引用其他项目只是为了他们的接口(interface)。我觉得这污染了我的领域;虽然不是具体的引用,但有时很难避免循环引用。

所以,我有时会回到“层”的概念......

我想知道其他 DDD 专家如何分解企业级应用程序。请随时推荐书籍和文章。

并提前感谢!

最佳答案

一种想法是我做的是添加一些标识有界上下文的东西。

附言。为确保清楚原因,请检查有界上下文中的两个链接:
http://dddcommunity.org/discussion/messageboardarchive/BoundedContext.html , http://devlicio.us/blogs/casey/archive/2009/02/11/ddd-bounded-contexts.aspx

关于refactoring - 在领域驱动设计中,您如何考虑您的领域(命名空间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619131/

相关文章:

java - 如何使用重构从类中删除泛型类型

domain-driven-design - DDD : Aggregate Roots

c# - EFCore 和 C# 中聚合之间的 DDD 和引用

c++ - CLion 中的重构不起作用

.net - 您对 .NET 使用哪些重构工具?

c# - 重构 “procedural” WCF服务

Java:将类名传递给函数

java - 这个架构定义可以吗?多层(Spring/多数据库)

c# - 代码生成 - 领域/模型优先 (DDD)

c# - 为什么我应该在我的 EF 顶部构建一个包含工作单元的存储库模式?