3

我试图围绕服务层的域驱动设计概念,包括应用程序服务和域服务。我遇到的几乎所有示例都与带有数据库的 CRUD 应用程序有关。我无法理解这些概念如何映射到图形应用程序,例如我为这个问题选择的示例应用程序,它是用 .NET/C# 开发的 Microsoft Paint 的克隆。

我阅读了DDD 中服务层的基本概念扩展说明。我选择了以下应用层:

基础设施(跨领域)

  • 日志记录

数据(文件系统)

  • 位图图像、PngImage 等

领域

  • 画布、图像、选择、形状、画笔等

应用

演示文稿(本地客户端 WPF)

  • 意见
  • 视图模型

我正在尝试设计的一个用例是用户在画布上绘制一个矩形。从我读过的,由于用例需要多个域对象的合作,因此域服务 DrawingService 是有意义的。

另一个用例是用户加载要显示的文件。同样,从我读过的内容来看,由于这个用例是一个命令和一个工作流,一个应用程序服务 FileLoadingService 是有意义的。

正如 Martin Fowler 所描述的,我相信 Microsoft Paint 足够复杂,可以保证一个服务子系统,这里基于主题行为。然而,随着应用程序的增长,服务层可以重构为领域模型的分区,例如 CanvasService、SelectionService 等。那么现在是否需要另一个抽象层,也许是应用程序外观,因为多个服务必须协作?

更新1:

最初的评论表明 DDD 架构不适合绘图应用程序。有什么替代方案的建议吗?

4

1 回答 1

0

恕我直言,绘图应用程序不太适合 DDD。它会使用别的东西

于 2013-04-15T17:46:17.080 回答