我是DDD的新手,我正在尝试决定如何访问基础架构硬件(网络设备,专用硬件等)信息。我想与之通信和控制的大多数设备都具有状态。我将域中的设备表示为对象,但是如果它通过存储库或服务或其他组件来复制状态。
一个例子是:如果客户购买防火墙,将执行命令AddFireWall,并且网络设备上的vlan将切换到防火墙,并且IP和专用IP将被放置在该防火墙设备上。我将网络设备和防火墙设备表示为我域中的实体对象。这些对象/设备的状态将保存在存储库中。
答案 0 :(得分:1)
一般来说,您的域模型应该不受外部依赖关系(如硬件和网络等)的影响。有一个称为反腐败层的概念可能值得查找。我们的想法是在硬件和域之类的系统之间架起一座桥梁。它的职责是在两个系统之间进行转换。如果硬件或网络发生变化,那么您需要调整的只是ACL中的代码。
其他方法可能包括从硬件生成事件消息。然后可以将这些消息订阅为系统的各个部分。