我正在为我所拥有的域模型场景寻找设计建议。
我们说我有一队机器人,每个机器人都可通过无线网络连接控制。
我有一个代表现实世界机器人的IRobot域对象。界面如下所示:
public interface IRobot
{
void MoveHeadUp(int toAngle);
void MoveHeadDown(int toAngle);
int GetHeadAngle();
}
示例场景:虚拟机器人显示在GUI中。在离线模式下,GUI显示如果我们告诉域对象(IRobot)将其头部抬高5度会发生什么。
在在线模式下,GUI将显示机器人的移动,命令将被发送到物理机器人,它也会移动。
我试图在这个域对象周围添加远程功能,即。通过以太网或串口等获取/设置远程状态。我不想通过网络连接问题污染域对象。
实施IRobot域行为并将远程连接实现细节分开的最佳方法是什么?
答案 0 :(得分:0)
我对此的看法是消息传递。
您的所有命令(以及您给予机器人的那些命令)都可以通过您需要的任何内容(您选择的传输)进行有效通信,您的机器人(虚拟或物理)将接收命令并对其采取行动。
您可以将这些机器人视为终点。每个端点都有一个名称/地址。您正在向这些机器人发送命令,并且不再关心如何执行机器人(物理或模拟)命令。
您已提及
在线模式
这是否意味着您还有离线模式?如果是这样,我肯定会调查消息。