远程设备的域模型

时间:2015-07-02 23:18:11

标签: oop design-patterns domain-driven-design solid-principles

我正在为我所拥有的域模型场景寻找设计建议。

我们说我有一队机器人,每个机器人都可通过无线网络连接控制。

我有一个代表现实世界机器人的IRobot域对象。界面如下所示:

public interface IRobot
{
    void MoveHeadUp(int toAngle);
    void MoveHeadDown(int toAngle);
    int GetHeadAngle();
}

示例场景:虚拟机器人显示在GUI中。在离线模式下,GUI显示如果我们告诉域对象(IRobot)将其头部抬高5度会发生什么。

在在线模式下,GUI将显示机器人的移动,命令将被发送到物理机器人,它也会移动。

我试图在这个域对象周围添加远程功能,即。通过以太网或串口等获取/设置远程状态。我不想通过网络连接问题污染域对象。

实施IRobot域行为并将远程连接实现细节分开的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我对此的看法是消息传递。

您的所有命令(以及您给予机器人的那些命令)都可以通过您需要的任何内容(您选择的传输)进行有效通信,您的机器人(虚拟或物理)将接收命令并对其采取行动。

您可以将这些机器人视为终点。每个端点都有一个名称/地址。您正在向这些机器人发送命令,并且不再关心如何执行机器人(物理或模拟)命令。

您已提及

  

在线模式

这是否意味着您还有离线模式?如果是这样,我肯定会调查消息。