2

デザインパターンアプローチで2つのアルゴリズムを作成したいと思います。ロボットは掃除をして最初の位置に戻ります。

部屋を掃除した後、掃除されたパスも必要です。

私はコマンドパターンを使用する予定です.しかし、1つの疑いがあります, 要件は、クリーンアルゴリズムとリターンアルゴリズムの両方が交換可能である必要があり、2つのアルゴリズムが必要であると言っています.

コマンドパターンに従って、実行されたすべてのコマンドをリストに保存し、パスを見つけることができます。しかし、どのパターンが最適なのか、まだ疑問があります (要件は 2 つ前が必要です)。

デザインを見て、きれいにして、別のインターフェイスから戻ってください。ファクトリを使用して交換可能にするのは難しいと思います...

public interface ICleaningAlgorithm {
    void Clean(IRobot robot);
}

public interface IReturnAlgorithm {
   void Return(IRobot robot);
}
Example classes (without implementation):

public class CleaningAlgorithm : ICleaningAlgorithm {
    public void Clean(IRobot robot) {
        /* pseudocode from the post */
    }
}

public class ReturnAlgorithm {
   public void Return(IRobot robot) {
       /* some shortest path algorithm */
   }
}

ここに画像の説明を入力 デザインUML画像添付

4

1 に答える 1