問題タブ [state-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 - 状態とFlyWeightパターン
フライウェイトパターンでステートパターンを使用する例を誰かが共有できますか(フライウェイトパターンは、メモリを節約するためにステートオブジェクトを作成するためのものです)?
更新:状態パターンとfwパターンの組み合わせを使用するにはどうすればよいですか?
java - 状態パターンの理解不能
状態パターンなし
状態パターン
someMethod()
最初のケースではオブジェクトは 1 つしかありませんが、別のケースではメソッドを呼び出すたびに新しいオブジェクトを作成します。
- これはパターンの正しい理解ですか?
- この問題を解決して、それほど多くのオブジェクトを作成しないようにするにはどうすればよいですか?
- このパターンについて他に何を知る必要がありますか?
java - 条件付き状態変化を伴う状態パターン
Stateパターンの1つの側面に頭を巻き付けるのに少し問題があります。ウィキペディアなどで提供されている基本的な例は理解していますが、StateContext
クラスが条件付きの状態変更を、たとえば各状態に固有のタイマーで行っている場合はどうなりますか?
したがって、たとえば、状態が、、、、A
およびであるとしB
ます。そして、状態ベースのタイマーに基づいて状態を変更したいと思います。たとえば、Aに5秒間、Bに7秒間、Cに3秒間、Dに10秒間留まります。C
D
誰がその期間を管理する必要がありますか?各州はその期間を知っている必要がありますか?_duration
その場合、属性を各状態にコピーして貼り付けるのは面倒で、State
インターフェイスはその属性を持つ抽象基本クラスである必要があると思います。
またはStateContext
、期間を管理する必要がありますか?IsInstanceOf
その場合、私は自分のチェックをするのが面倒だと感じ_state
ます。
php - Doctrine2+状態パターンとしてのソフト削除
Doctrine2のドキュメントによると、ソフト削除の動作は状態パターンとしてより適切に実装する必要がありますが、その実装の例は提供していません。
状態パターンを使用してソフト削除動作を実現するにはどうすればよいですか?
c# - 戦略、州、シングルトン...またはそれらの構成?
私はstackoverflowを初めて使用し、WPFを比較的使用していません。
パターンとベストプラクティスの5ダースの重い本(およびここに多数の投稿)に頭を包みましたが、探している解決策が見つからないようです。
私の問題:WPF / .Net 4 / C#一度に1つのドキュメント(タイプDocument D )をロードできる(タイプEditor Eの)テキストプロセッサがあります(Editor.CurrentDocumentとしてstroed)。いくつかのUIコントロールは、Document.Title、Document.DateLastModificationなどのドキュメントのプロパティ(すべての依存関係プロパティ)にバインドします。
ここで、すべてのイベントハンドラーをフック解除して再度フックすることなく、実際のDocumentインスタンスを切り替えられるようにしたいと思います。したがって、Editor.CurrentDocumentプロパティは、実装を切り替える間、何らかの形でそのインスタンスのままである必要があると思います。
Documentから直接継承し、シングルトンパターンを使用するSingleInstanceDocumentクラスを作成しようとしました。しかし、すべてのプロパティを内部的に再マップする必要なしに、DocumentインスタンスをSingleInstanceDocumentに挿入する方法を見つけることができません。
私はどういうわけか間違った方向に進んでいるのでしょうか、それともここでのポイントを見逃しているのでしょうか?SingleInstanceDocumentアプローチが実行可能なソリューションである場合、リフレクションを使用して、使用可能なすべての依存関係プロパティを内部ドキュメントから外部SingleInstanceDocumentシェルに自動的に再マップする方法はありますか?
どうもありがとうございます!
補遺:
ここで必要な機能は、CurrentDocumentホストオブジェクトにINotifyPropertyChangedを実装することにより、すぐに使用できるWPF/.NETによって既に提供されていることがわかりました。したがって、現在のドキュメントを変更すると、UIはバインドされたコントロールを適切に更新します。ご迷惑をおかけして申し訳ございません。
domain-driven-design - 状態パターンとドメイン駆動設計
単純な列挙を使用して、エンティティの状態を表すことがよくあります。問題は、状態に大きく依存する動作を導入した場合、または状態遷移が特定のビジネス ルールに従う必要がある場合に発生します。
次の例を見てください (列挙を使用して状態を表します)。
Reject、Complete、Remove などのメソッドを追加すると、このクラスはすぐに非常に冗長になることがわかります。
代わりに、各状態をオブジェクトとしてカプセル化できる State パターンを導入できます。
これにより、状態間の遷移、現在の状態に基づいたロジックの実行、または必要に応じて新しい状態の追加が簡単になります。
このカプセル化はきれいに見えますが、十分な状態が与えられると、これらも非常に冗長になる可能性があります。代わりにポリモーフィズムを使用することを提案しているState Pattern Misuse に関する Greg Young の投稿を読みました (そのため、ApprovedVacancy、UnapprovedVacancy などのクラスが必要です) が、これがどのように役立つかわかりません。
このような状態遷移をドメイン サービスに委任する必要がありますか?それとも、この状況での状態パターンの使用は正しいですか?
java - 文字列解析に状態パターンを使用する
私のプログラミング割り当ての一部では、状態パターンを使用して文字列を解析する必要があります。状態パターンを使用することが明示的に要求されているため、他のオプションは許可されていません。
文字列の例: " update user filter userId=user3 set name=xxx ". (太字はキーワード)。
リクエストは次のようなものです。
クエリの解析中は、状態パターンを使用する必要があります。OPERATOR、OBJECT、FILTER、VALUES の 4 つの状態があります。
State Pattern の例を見て、わかったと思いますが、それを文字列解析に適用する方法を理解できませんでした。
どなたかヒントを頂ければ幸いです。
java - この例は、ハリウッドの原則「私たちに電話するな、私たちはあなたに電話する」に違反していますか?
私は真っ先にデザインパターンを読んでいて、これに気づきました。
「ハリウッドの原則、私たちに電話しないで、私たちはあなたに電話します」
これは、高レベルのコンポーネントが低レベルのコンポーネントに「私たちに電話しないでください、私たちはあなたに電話します」と伝えることを意味します
High-Level Component は、他の Low-Level コンポーネントで定義された BEHAVIOR を持つクラスです。
私の質問は...この例は、私たちに電話しないでください、私たちはあなたを呼ぶという原則に違反していますか?. これもState Patternを使った本から。
================================================== ==================
================================================== ==================
この例では、GumballMachineは独自のinsertQuarterBehaviorのためにNoQuarterStateのinsertQuarterBehavior()を必要とするため、これはGumballMachineクラスが高レベル コンポーネントであり、NoquarterStateクラスが低レベル コンポーネントであることを意味します。しかしNoQuarterStateクラスを見てください。このクラスは、 insertQuarter() Behaviorについて、 gumballMachine の setState()およびgetHasQuarterState()にも依存しています。
それらは互いに依存しています。回覧 - 依存関係
java - 文字列の解析における状態パターンの使用法
状態パターンは、文字列を解析する際に役立ちます。状態とは、メソッドのように作業の一部を意味します。文字列からいくつかの単語を解析すると、状態が新しい状態に変わります
これはどういう意味ですか?私は本当に混乱しています。
「OPERATOR OBJECT [FILTER] [VALUES]」という形式の文字列があり、クエリの解析中に状態パターンを使用する必要があります。4 つの状態があります: OPERATOR、OBJECT、FILTER、および VALUES"
design-patterns - 戦略デザインパターンと状態デザインパターン
私はこのリンクを通して状態パターンについて読んでいました。戦略パターンのように見えますか?これら2つのパターンの正確な違いは何ですか?