远程设备的领域模型
Domain Model for Remote devices
我正在为我拥有的域模型场景寻找设计建议。
假设我有一队机器人,每个机器人都可以通过无线网络连接进行控制。
我有一个代表真实世界机器人的 IRobot 域对象。界面如下所示:
public interface IRobot
{
void MoveHeadUp(int toAngle);
void MoveHeadDown(int toAngle);
int GetHeadAngle();
}
示例场景:虚拟机器人显示在 GUI 中。在离线模式下,GUI 显示如果我们告诉域对象 (IRobot) 将其头部抬高 5 度会发生什么。
在联机模式下,GUI 会显示机器人移动并且命令会发送到物理机器人并且它也会移动。
我正在尝试围绕此域对象添加远程功能,即。 getting/setting 通过以太网或串行等远程状态。我不想用网络连接问题污染域对象。
实现 IRobot 域行为并将远程连接实现细节分开的最佳方法是什么?
我的看法是消息传递。
您的所有命令(这就是您给机器人的命令)都可以通过您需要的任何东西(您选择的交通工具)有效地传达,您的机器人(虚拟的或物理的)将接收命令并执行它。
您可以将这些机器人视为端点。每个端点都有一个 name/address。您正在向这些机器人发送命令,而您不再关心机器人(物理或仿真)命令是如何执行的。
你提到过
In online mode
这是否意味着您也有离线模式?如果是这样,我肯定会研究消息传递。
我正在为我拥有的域模型场景寻找设计建议。
假设我有一队机器人,每个机器人都可以通过无线网络连接进行控制。
我有一个代表真实世界机器人的 IRobot 域对象。界面如下所示:
public interface IRobot
{
void MoveHeadUp(int toAngle);
void MoveHeadDown(int toAngle);
int GetHeadAngle();
}
示例场景:虚拟机器人显示在 GUI 中。在离线模式下,GUI 显示如果我们告诉域对象 (IRobot) 将其头部抬高 5 度会发生什么。
在联机模式下,GUI 会显示机器人移动并且命令会发送到物理机器人并且它也会移动。
我正在尝试围绕此域对象添加远程功能,即。 getting/setting 通过以太网或串行等远程状态。我不想用网络连接问题污染域对象。
实现 IRobot 域行为并将远程连接实现细节分开的最佳方法是什么?
我的看法是消息传递。
您的所有命令(这就是您给机器人的命令)都可以通过您需要的任何东西(您选择的交通工具)有效地传达,您的机器人(虚拟的或物理的)将接收命令并执行它。
您可以将这些机器人视为端点。每个端点都有一个 name/address。您正在向这些机器人发送命令,而您不再关心机器人(物理或仿真)命令是如何执行的。
你提到过
In online mode
这是否意味着您也有离线模式?如果是这样,我肯定会研究消息传递。