2016-09-21 11 views
-3

私はコマンドパターンを実行し、リストに異なるコマンドを保持できることを知りました。だから、スタックやキューのような単純なコレクションクラスがあると、なぜ複雑な構造を構築しているのですか?コマンドパターンにキューが使われないのはなぜですか?コマンドパターンvsキュー

Reference for command pattern

Queue q = new Queue(); 

    q.Enqueue('A'); 
    q.Enqueue('M'); 
    ch = (char)q.Dequeue(); 
+2

2つが直接的にどのように相関していると思いますか分かりません。コマンドパターンは、送信者と受信者の間の通信の問題を解決する方法を具体的に示しています。キューがコマンドパターンで使用できない/使用されていないと思われる理由もわかりません。しばしばそれは全く反対であり、利用されている。 –

+1

私の理解のとおり、コマンドパターンは将来の使用のために要求を保存する方法を定義します。 – user1357872

+0

これはコマンドパターンの目的の1つだけです。要求を特定のオブジェクトとして定義する機能と、必要なパラメータ化に基づいて要求とさまざまな受信者間の関係を管理する機能もあります。 –

答えて

1

あなたがリンクした記事では、UndoableCommand秒間Stackを使用して行います。しかし、Queueの使用が来るのコマンドを示し

class CommandManager { private Stack commandStack = new Stack(); ...

ユーザからコマンドを受け取ったコマンドが実行されている間もフォームを応答可能にするのに役立つであろう。これは、非同期プログラミングであり、この記事の範囲をはるかに超えています。

通常、私はここで記事をリンクしたいと思いますが、非同期プログラミングのテーマは非常に広々としているので、私はあなたがそれをグーグルで見つけて、複数のソースを見ているほうがよいと信じています。

関連する問題