Questions tagged «domain-driven-design»

域驱动设计(DDD)是一种通过将实现与不断发展的模型连接来开发满足复杂需求的软件的方法。

11
图像应该能够在OOP中调整大小吗?
我正在编写一个具有Image实体的应用程序,并且在确定每个任务应由谁负责方面已经遇到了麻烦。 首先我Image上课。它具有路径,宽度和其他属性。 然后,我创建了一个ImageRepository类,用于通过一个经过测试的方法来检索图像,例如:findAllImagesWithoutThumbnail()。 但是现在我还需要能够createThumbnail()。谁应该处理?我当时正在考虑开设一个ImageManager类,该类将是特定于应用程序的类(还可以选择第三方图像处理可重用的组件,而我并不是在重新发明轮子)。 还是让Image自身调整大小为0K ?还是让ImageRepository和ImageManager成为同一个类? 你怎么看?

2
提及DDD时,“域”是什么意思
域一词对于驱动设计/开发是什么意思? 不是在语义或学术定义方面,而是在其如何修改过程或哲学方面? 我正在阅读一篇文章:https : //softwareengineering.stackexchange.com/questions/57828/your-software-problem-solution-approach 我碰到了这个流行词DDD,却并不真正知道那是什么意思。

3
计算值和简单阅读-我的域驱动设计困扰人!
我一直面临的问题是如何处理由域逻辑驱动的计算值,同时仍然有效地处理数据存储。 例: 我正在通过服务从存储库返回产品列表。此列表受客户端发送的来自请求DTO的分页信息限制。另外,DTO指定一个排序参数(一个客户端友好的枚举)。 在一个简单的场景中,一切工作都很好:该服务将分页和排序表达式发送到存储库,而存储库向数据库发出有效的查询。 但是,当我需要对通过域模型在内存中生成的值进行排序时,一切都将崩溃。例如,Product类具有一个IsExpired()方法,该方法根据业务逻辑返回布尔值。现在我无法在存储库级别进行排序和分页-所有这些操作都必须在内存中完成(效率低下),并且我的服务必须知道何时向存储库发出这些参数以及何时执行排序/分页的复杂性本身。 在我看来,唯一有意义的模式是将实体的状态存储在db中(将IsExpired()设置为只读字段,并在保存之前通过域逻辑对其进行更新)。如果我将此逻辑分为一个单独的“读取模型/ dto”和“报告”存储库,那么我将使模型变得比我想要的更贫乏。 顺便说一句,我看到的每个这样的计算示例实际上都依赖于内存中的处理和掩盖性,因为它从长远来看效率很低。也许我过早地进行了优化,但这并不适合我。 我很想听听其他人如何处理此问题,因为我敢肯定这在涉及DDD的几乎项目中是很常见的。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.