domain-driven-design - 对于作为域实体方法参数的接口,我应该使用什么包?
问题描述
我有域实体任务(它是要做列表应用程序),并且该实体有一个方法 saveToFile(),它接受两个参数 - 接口 ToFileSaver 和字符串文件名。我知道这个接口应该放在域层中,它的实现放在基础设施层中,但是我应该为这些包使用什么名称?端口和适配器?
解决方案
实体方法的参数类型通常属于这些实体。因此,我会将它们放在与实体相同的包中。如果它们属于属于另一个域概念的域的其他部分,例如用户管理,我只会将它们放在其他包中。
正如你所说,实现放在外面。
但是您似乎将持久性问题放在了域层中。与其给实体一个Task.saveToFile(ToFileSaver)
方法,不如定义一个TaskRepositoy.persist(Task)
方法。
推荐阅读
- git - 如何将浅克隆推送到新的仓库?
- typescript - Typescript 中当前(2018 年 6 月)推荐的目标是什么
- scala - 如何使用 Scala 反射仅获取主要的构造函数参数?
- php - 尝试添加联系表格
- python - 带有衰减的 Pandas 数据帧前向填充
- laravel - 如何在窗口上安装 php-v8js
- ruby-on-rails - 在 minitest 中测试 postgres“RANDOM()”
- c# - 每个客户练习的 C# 票分配
- r - R - 从 CSV 聚合数据,无法每天聚合值
- ember.js - 在 Ember.js 中组织列表、查看、创建和更新路由的最佳实践