初めてコマンド パターンを使用します。依存関係をどのように処理すればよいか、少しわかりません。
以下のコードでは、 をディスパッチCreateProductCommand
し、後で実行するためにキューに入れます。このコマンドは、実行に必要なすべての情報をカプセル化します。
この場合、製品を作成するために何らかのタイプのデータ ストアにアクセスする必要がある可能性があります。私の質問は、この依存関係をコマンドに挿入して実行できるようにするにはどうすればよいですか?
public interface ICommand {
void Execute();
}
public class CreateProductCommand : ICommand {
private string productName;
public CreateProductCommand(string productName) {
this.ProductName = productName;
}
public void Execute() {
// save product
}
}
public class Dispatcher {
public void Dispatch<TCommand>(TCommand command) where TCommand : ICommand {
// save command to queue
}
}
public class CommandInvoker {
public void Run() {
// get queue
while (true) {
var command = queue.Dequeue<ICommand>();
command.Execute();
Thread.Sleep(10000);
}
}
}
public class Client {
public void CreateProduct(string productName) {
var command = new CreateProductCommand(productName);
var dispatcher = new Dispatcher();
dispatcher.Dispatch(command);
}
}
どうもありがとう
ベン