問題タブ [command-pattern]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - コマンドパターン-値を返します
TCP/IPソケットを介してクライアントからサーバーにコマンドを渡すためにコマンドパターンを使用しています。サーバーはコマンドオブジェクトを取得し、それを逆シリアル化してから、コマンドオブジェクトに対してexecute()を呼び出します。ただし、ソケットを介して呼び出し元に値を返す必要があります。コマンドパターンはこれを可能にしますか?そうでない場合、回避策はありますか?ウィキペディアの照明スイッチの例を見てきましたが、これはすばらしいですが、戻り値はありません。どんなアドバイスも大歓迎です。
c# - DDDコマンドパターンの実装の詳細-永続的なコマンド
1つ以上のコマンドオブジェクトをエンティティに割り当てて、ワークフローの一部としてこれらのコマンドを使用できるようにする設計があります。議論のために、アドオン機能をユーザーのアカウントに割り当てるようなもの。
コマンドパターンとこれがどのように適合するかは理解していますが、私の質問は永続性の1つです。コマンドのリストがあり、各ユーザーアカウントが独自のコマンドのリストを持つことができ、議論のために、コマンドに関して重要なのはそのシステムタイプだけであるか、すべて同じプロパティを持っていると仮定しましょう。データレイヤーを実装するときにそれを維持するための最良の方法は何ですか?
私は、accountsテーブルとcommands / featuresテーブルの間の多対多の関係としてそれを行うことを検討していました。後者のテーブルはTPH戦略に従います(つまり、すべてのコマンドが同じテーブルに保持されます)。それが最もクリーンな方法のようですが、他の誰かが別の戦略に従っているのかどうかを確認したかったのでしょうか。
代わりに、同じ機能が追加された2つのアカウントがその機能の異なるインスタンスを持つ、1:多の関係にしますか?それとも、私がまったく考えていないより良い方法はありますか?
c++ - C++ でのコマンド パターンのシリアル化
私はC ++で次のことをしたい:
- コマンド オブジェクトを作成する
- それを連載する
- (別のコンピュータに送信します)
- 逆シリアル化
- 実行する
2 つのケース:
- 送信者と受信者の両方が7台のコンピューターに勝つ
- 送信者は* nix、受信者はwin 7
シリアル化のチュートリアルを見つけました: http://www.functionx.com/cpp/articles/serialization.htm。これは行く方法ですか?pythonでは、次のことができます:
このコードの要点は pickle.dump と pickle.load です。C++ に相当するものは何ですか? ウィキペディアは、C++ はシリアル化をサポートしていないと言っていますか? では、上記のリンクは何ですか?
バイナリ シリアル化とはどういう意味ですか? メモリはディスクにダンプされ、逆シリアル化にはまったく同じコンピューターが必要ですか (クロスプラットフォーム転送は必要ありません)?
br、ユハ
gwt - Command パターンを使用した GWT RequestFactory
現在、コマンド パターンを RequestFactory と組み合わせて使用していますか? 使いたいのですが、RequestFactory は継承ができないのでどうすればいいのかわかりません。
誰かがこの問題を経験し、それを実装する方法を見つけた場合は、喜んでお知らせします.
ありがとうございました!
xaml - Using different databinding sources within ListBox and ContextMenus
Here is the XAML:
#xA;Ok so the ListBox's ItemSource is bound to the Documents collection in the VM and properly renders the Titles and IDs
The Context Menu's ItemSource is bound to the CategoryList collection in the VM and properly renders the list of categories.
The problem I have is with the Command Binding:
#xA;Since the ItemSource for the ContextMenu is already set, it tries to get the AddDocumentToCategoryContextMenuCommand from CategoryList. Obviously the command is not there, it is a member of the VM.
I do not want any references to the VMs or Models in the XAML. Everything is constructed using Unity and VM-View is associated in App.xaml:
#xA;How can I databind to a member of the VM from within the ContextItem.
Thanks.
UPDATED edit #1 starts Here
Here is the updated xaml (but still not working but some insight gained):
#xA;I have this example working for a simple example that does not use a ContextMenu. It appears that the ContextMenu (even though attached to the ListBox) is not part of the user control visual tree. The binding always comes back null / not found. I think the ContextMenu, because it is a floating "window" is constructed in its own tree and therefore cannot find the ListBox call "Results" in order to access the ListBox's DataContext.
Any thoughts on this? Any recommendations on how deal with?
Edit #2 Starts Here
In case you are are wondering, figured out the answer to the binding question:
This binding works:
#xA;Hope this helps others with the same question.
One last update for completeness.
In order for the command to know which context menu item was clicked on, I had to change the xaml slightly (silly oversight):
#xA;Again, hope this helps others.
gwt - gwt-dispatch-GWTの代替コマンドパターン
GWTプロジェクトで使用されるgwt-dispatchに代わるものはありますか?
design-patterns - コマンドパターンについて混乱している
私は現在、ソフトウェアデザインコースを受講しています。私自身、ソフトウェアシステムの設計が得意ではなかったので、自分の弱点を修正するのは賢明な方法だと思いました;)
コマンドパターンがどのように機能するかを理解しようとしています。私は例を探し回ってきましたが、それでも困惑しています。パターン内の各クラスの責任は何ですか?ConcreteCommandsは実際にアクションを実行しますか、それとも必要な情報を運び、実際に実行するために適切な宛先に送信しますか?
apache-flex - Flex: DataGrid とコマンド パターン
コマンド パターンを使用しているため、オブジェクトの状態の変更はコマンド実行内で行う必要があります。DataGrid の通常の itemeditor は、基礎となるバインドされたオブジェクトに変更を加えるだけですが、その変更をインターセプトしてコマンドを使用させる必要があります。
私はフレックスにかなり慣れていないので、これを実装する方法のアイデアを探しています。基本的な例は、「日付」フィールドを持つオブジェクトがあることです。データグリッドでは、フレックス「DateField」コンポーネントを itemeditor として使用しています。新しい日付を選択するときに、データソースを更新したくありません。新しく選択した値にアクセスして実行するコマンドに渡すことができる別のメソッドを呼び出す必要があります。どんなヒントでも大歓迎です。前もって感謝します。
c++ - shared_ptr を使用して堅実なコマンド パターンに取り組む
ライブラリに非常にクリーンなコマンド パターンを実装しようとしています。
私は現在、次の構造を持っています(いくつかの部分はまだ仕上げ中です):
- ユーザー (クライアントコード) にはいくつかのオブジェクトがあり、それを「マネージャー」と呼びます
Manager
のコレクションを保持していますshared_ptr<Foo>
Manager
を返すことでコレクションへのアクセスを提供しますshared_ptr<Foo>
- アクションを実行するための
Command
抽象クラスとコマンドの階層がありますFoo
- クライアント コードは、元に戻す/やり直しを処理できるように、のみを呼び出してはなりません。
Command::execute()
Manager
Manager::execute(shared_ptr<Command>)
以下のルールを守りたいと思います。
- ユーザー (クライアントコード) にはいくつかのオブジェクトがあり、それを「マネージャー」と呼びます
Manager
のコレクションを保持していますshared_ptr<Foo>
Manager
を返すことでコレクションへのアクセスを提供しますshared_ptr<const Foo>
- アクションを実行するための
Command
抽象クラスとコマンドの階層がありますFoo
- クライアント コードは (回避策なしで)を呼び出すことはできません。
Command::execute()
Manager
Manager::execute(shared_ptr<Command>)
- ユーザーがobjecstを
Manager
_Command
shared_ptr<Foo>
Command
shared_ptr<const Foo>
shared_ptr<const Foo>
5番と6番を機能させながら、配布を処理する最良の方法を見つけようとしています。
私が学ぶことができるこれを行う例/設計パターンはありますか? これは、私がすでに持っている/取り組んでいるものと比較して良い考えですか?
design-patterns - コマンド パターンが不必要に複雑に見えます (何が理解できていないのでしょうか?)
Command Pattern を読みましたが、何かが足りないと思います。Command オブジェクトは、Receiver オブジェクトの詳細を抽象化するために存在します。ここでやめて、Command オブジェクトへの参照を保持し、適切なメソッドを適切なタイミングで実行できるように思えます。
では、なぜ Invoker が必要なのでしょうか? この追加の間接化にはどのような利点がありますか? レシーバーの詳細はコマンドの背後にすでに隠していますが、コマンドをクライアントからも隠す理由は何ですか?