gpt4 book ai didi

user-interface - 设计模式 : Factory and Repository

转载 作者:行者123 更新时间:2023-12-04 04:29:12 25 4
gpt4 key购买 nike

我一直想知道工厂模式和存储库模式是否渴望在领域驱动设计项目中携手并进?

我问的原因是我这样做的方式是这样的:

GUI -> ClassFactory -> ClassProduct(在域模型中)-> ClassProductRepository -> Datasource

GUI 调用 ClassFactory 以将 GUI 与业务逻辑分离。 ClassProduct 调用 ClassProductRepository 将业务逻辑与数据源分离。

这是将这些设计模式与领域驱动设计结合使用的错误方法吗?如果是这样,请说明您对这个问题的看法。

最佳答案

你在正确的轨道上。正如 Chad 所指出的,您需要使用 GUI 界面分离模式作为域和 UI 之间的附加层。 MVC、MVP、Presentation Model 等已建立并有据可查的 UI 分离模式。 Martin Fowler 的优秀 PoEAA涵盖了其中的许多

至于你的主要问题。是的。工厂和存储库可以很好地协同工作。事实上,埃文斯在 DDD 中建议在某些情况下,当您从数据存储中重建对象时,您可以将存储库中的对象创建责任委托(delegate)给您的工厂类。

client <=> repository -> factory
|
v
database
  • 客户端请求一个对象
    存储库。
  • 存储库查询数据库。
  • 存储库将原始数据发送到
    工厂。
  • 工厂返回对象。

  • 过度简化,但你明白了。 Evans 没有提到的一点(但 Fowler 涵盖了)是依赖注入(inject)。随着您的域复杂性持续增长,您可能需要考虑迁移到 IoC 容器来管理对象生命周期。

    关于user-interface - 设计模式 : Factory and Repository,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1644725/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com