我将设计一个新系统,因为DDD似乎符合我对一个好软件的看法,我想用它。
我的系统由一些“技术”模块组成,其中两个对我的问题很重要:
域模块。 包含域(值对象,实体,应用程序服务,域服务,存储库,......)
网络服务模块。
谁允许通过Http(REST)在域上进行交互。基本上它将HTTP动词和资源转换为ApplicationService
上的一个操作并返回DTO(作为XML或Json)。
DTO包含属于域对象的所有值(通常是聚合)。
后来,在实现一个简单的用例时,我想我可以很好地创建一个使用REST服务的ApplicationService
的实现。这样我就可以在本地或远程透明地使用它。或者也许创建一个使用REST Api的Repository
实现以及ApplicationService
所依赖的实现。
这样做可以避免一些不必要的调用,并将它们仅限于具有有效值的用例以及需要访问基础架构层的用例。
但这意味着每个人都可以操纵域名。
所以我不确定应该怎么做。您是否认为像这样分享域名是个好主意?或者我们如何通过服务公开我们的域名?
非常感谢