私が持っているドメインモデルシナリオの設計アドバイスを探しています。
ロボットの分隊があり、それぞれがワイヤレスネットワーク接続を介して制御可能であるとしましょう。
実世界のロボットを表すIRobotドメインオブジェクトがあります。インターフェイスは次のようになります。
public interface IRobot
{
void MoveHeadUp(int toAngle);
void MoveHeadDown(int toAngle);
int GetHeadAngle();
}
シナリオ例:仮想ロボットがGUIに表示されます。オフラインモードでは、GUIは、ドメインオブジェクト(IRobot)に頭を5度上げるように指示するとどうなるかを示します。
オンラインモードでは、GUIにロボットの移動が表示され、コマンドが物理ロボットに送信され、ロボットも移動します。
このドメインオブジェクトの周りにリモート機能を追加しようとしています。イーサネットやシリアルなどを介してリモート状態を取得/設定します。ネットワーク接続の問題でドメインオブジェクトを汚染したくありません。
IRobotドメインの動作を実装し、リモート接続の実装の詳細を分離しておくための最良のアプローチは何ですか?
これについての私の見解はメッセージングです。
すべてのコマンド(およびそれがロボットに与えているもの)は、必要なもの(選択したトランスポート)を介して効率的に通信でき、ロボット(仮想または物理)がコマンドを受信してそれに基づいて動作します。
これらのロボットはエンドポイントと考えることができます。各エンドポイントには名前/アドレスがあります。これらのロボットにコマンドをディスパッチしているので、ロボット(物理またはエミュレート)コマンドがどのように実行されるかはもう気になりません。
あなたは言及しました
オンラインモードの場合
オフラインモードもあるということですか?もしそうなら、私は確かにメッセージングを調べます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加