Get方法如何适应领域驱动设计
How does Get method fits in domain driven design
目前我正在学习领域驱动设计。根据我的理解,我创建了一个示例应用程序,它对国家/地区进行了一些操作。
我创建了一个名为 "MyTest.Country" 的 class 库,其中包含所有命令-
--MyTest.Country (ProjectName)
-- Commands (Folder)
--CreateCountry (: ICommand)
--DeleteCountry (: ICommand)
我有另一个名为 "MyTest.CountryClient" 的 class 库,它使用 EF 与数据库交互。
--MyTest.CountryClient (Project)
--CountryClass (ClassFile)
--CreateCountry (Method)
--DeleteCountry (Method)
--GetAllCountryList (Method)
另一个名为 "MyTest.CountryServices" 的服务的 class 库包含处理程序。
--MyTest.CountryServices (Project)
--CountryHandler : IHandleMessages<CreateCountry>
: IHandleMessages<DeleteCountry>
我有一个网络 API,它使用 NServiceBus 向 "MyTest.CountryServices" 发送命令以创建或删除国家/地区。该消息由 CountryHandler 处理,然后它从 "MyTestCountryClient".
调用相应的方法
我知道国家是一个实体,不能定义为域。但是,我只是想实现 DDD。
我的问题是 -
我在这里遵循正确的 DDD 原则吗?
如果我想获取所有国家列表,我应该直接调用MyTest.CountryClient吗?或者即使是获取操作我也需要先调用服务?
在您的情况下,CountryClient
似乎是您的 Repository
。如果是这样,是的,你可以直接调用它。
我建议您从 building blocks 开始学习 DDD。并且不要一开始就深入研究消息和命令。
目前我正在学习领域驱动设计。根据我的理解,我创建了一个示例应用程序,它对国家/地区进行了一些操作。
我创建了一个名为 "MyTest.Country" 的 class 库,其中包含所有命令-
--MyTest.Country (ProjectName)
-- Commands (Folder)
--CreateCountry (: ICommand)
--DeleteCountry (: ICommand)
我有另一个名为 "MyTest.CountryClient" 的 class 库,它使用 EF 与数据库交互。
--MyTest.CountryClient (Project)
--CountryClass (ClassFile)
--CreateCountry (Method)
--DeleteCountry (Method)
--GetAllCountryList (Method)
另一个名为 "MyTest.CountryServices" 的服务的 class 库包含处理程序。
--MyTest.CountryServices (Project)
--CountryHandler : IHandleMessages<CreateCountry>
: IHandleMessages<DeleteCountry>
我有一个网络 API,它使用 NServiceBus 向 "MyTest.CountryServices" 发送命令以创建或删除国家/地区。该消息由 CountryHandler 处理,然后它从 "MyTestCountryClient".
调用相应的方法我知道国家是一个实体,不能定义为域。但是,我只是想实现 DDD。
我的问题是 -
我在这里遵循正确的 DDD 原则吗?
如果我想获取所有国家列表,我应该直接调用MyTest.CountryClient吗?或者即使是获取操作我也需要先调用服务?
在您的情况下,CountryClient
似乎是您的 Repository
。如果是这样,是的,你可以直接调用它。
我建议您从 building blocks 开始学习 DDD。并且不要一开始就深入研究消息和命令。