問題タブ [flyweight-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.

0 投票する
2 に答える
959 参照

java - 状態とFlyWeightパターン

フライウェイトパターンでステートパターンを使用する例を誰かが共有できますか(フライウェイトパターンは、メモリを節約するためにステートオブジェクトを作成するためのものです)?

更新:状態パターンとfwパターンの組み合わせを使用するにはどうすればよいですか?

0 投票する
3 に答える
5256 参照

design-patterns - Flyweight とオブジェクト プールのパターン: それぞれが役立つのはいつですか?

私が知る限り、オブジェクト プールは作成パターンであり、フライウェイトは構造パターンですが、実際には 2 つの間に大きな違いは見られません。誰かが私に違いと、それぞれが実装に役立つ時期を説明してもらえますか?

0 投票する
1 に答える
195 参照

c++ - flyweight オブジェクトのコピーを防ぐにはどうすればよいですか?

私は key_value flyweights を使用して学習しており、次のコードを書きました。

実行すると、次の出力が得られました。

私の本当の Foo はコピーするのにかなりのコストがかかるので、余分なコピーは避けたいと思います。これは、私がフライウェイトを使用している主な理由でもあります。それで、余分なコピーを避ける方法はありますか?

0 投票する
2 に答える
718 参照

c++ - 文字列から文字列への変換のフライ級:より良いパフォーマンスオプション

だから私は文字列型のフライ級を持っています:

そして、私はこれのインスタンスをそれらのベクトルにプッシュしたいのですが、素朴なアプローチは機能しません:

だから私は一時的なコンストラクターを追加しました:

私の質問は、言語の制約を考えると、このアプローチは最適ですか?静的変換演算子を提供するなど、他の方法でこれを実装すると、どのようなメリットがありますか?boost::flyweightテンプレートを変更する必要があるため、非明示的なコンストラクターを介した暗黙的な変換は有効なオプションとは見なされません。

0 投票する
1 に答える
945 参照

c++ - boost :: flyweightは参照カウントを行いますか?

のドキュメントを読んでいますがboost::flyweight、割り当て解除または参照カウントポリシーについての言及はありません。基本的に、flyweightオブジェクトは個別の値のリポジトリのように動作する必要がありますが、個別の値が使用されなくなったときに何が起こるかは明確ではありません。

すでにサポートされていますか?カスタムファクトリで有効にできますか?

0 投票する
6 に答える
5394 参照

java - JavaのStringInternはフライ級ですか?

Javaの文字列メモリプールの実装はフライウェイトパターンに従いますか?

私がこの疑問を持っている理由は、インターンには外因性の状態が関与していないことがわかります。GoFで、私は内因性と外因性の状態の間に適切なバランスがあるべきだと読みました。しかし、インターンではすべてが本質的です。

あるいは、属性に関して厳密な規則はなく、オブジェクトを共有してメモリを削減するだけで、それをフライ級と呼ぶのに十分であると言えます。

私が理解するのを手伝ってください。

0 投票する
2 に答える
226 参照

ajax - 多くのフィールドを持つフォームの処理

私はそれが私のWebアプリケーション large webformの中心です。フォームは実際には複数の html フォーム要素で構成されており、その多くは必要に応じて AJAX 経由で読み込まれます。Yii

フォームのサイズと複雑さのため、複数の保存ボタンや送信ボタンを配置することは現実的ではありません。データベース内の各フィールドは、jeditable または jeditable に似た機能を使用して、新しい値をサーバーに非同期的に AJAX することによって編集されるため、むしろ更新したいと思います。

誰かがこのようなことをしましたか?理論的には、エンドポイントを設定し、AJAX各コントロールにその名前、新しい値、および実行するCRUD操作を渡すことができると考えています。次に、エンドポイントは、ある種のマップに基づいてリクエストを適切にルーティングし、製品を返すことができます。誰かが以前にこの問題を解決しなければならないように思えたので、車輪の再発明に何時間も無駄にしたくありません。

アーキテクチャ/実装に関するご意見をお寄せいただきありがとうございます。

0 投票する
2 に答える
284 参照

java - Java Swing: flyweight と新しいウィンドウの比較

同時にいくつかのウィンドウを開く新しいアプリケーションを開発しています。現在、GUI を設計しようとしていますが、次の 2 つの選択肢に苦労しています。

  1. サイド ナビゲーション パネルを使用し、ページの中央を使用して各パネルのコンテンツを表示できます。これらのパネルは flyweight パターンに従って保存され、ナビゲーション ボタンがクリックされたときに非表示/表示するだけです (ユーザー登録フォームなど、非表示のときと同じようにコンテンツを保存するため)。

  2. メニュー全体を表示するフロントページを使用し、ポップアップ/新しいウィンドウを使用してコンテンツを表示できます。これらは閉じる/最小化するなど)。

私の問題は次のとおりです。すべてのパネルがフライウェイト パターンに格納されている場合はどうなりますか? パフォーマンスが大幅に向上しますか、それとも 15 個の JPanel を保存してもスムーズに動作しますか? (もちろん、これらの JPanel には、フォームなどの多くのコンテンツが含まれている場合があります)。

使いやすさ/パフォーマンスの面で最適な選択肢は何だと思いますか?

ありがとうございました :)

0 投票する
3 に答える
6040 参照

python - Python のコピー オン ライト動作

オブジェクトの多くのインスタンスをインスタンス化する問題に取り組んでいます。ほとんどの場合、インスタンス化されたオブジェクトは同一です。メモリのオーバーヘッドを減らすために、すべての同一オブジェクトが同じアドレスを指すようにしたいと考えています。ただし、オブジェクトを変更するときは、新しいインスタンスを作成する必要があります。つまり、基本的にコピー オン ライト動作です。Pythonでこれを達成する最良の方法は何ですか?

Flyweight パターンが近づいています。例 ( http://codesnipers.com/?q=python-flyweightsから):

これは次のように動作します。

望ましい動作は次のとおりです。

更新: 私は Flyweight パターンに出会いました。しかし、私は他のアプローチにもオープンです。

0 投票する
3 に答える
756 参照

design-patterns - Flyweight 設計パターンがメモリを最小化する方法

Flyweight 設計パターンは、使用されるメモリをどのように最小化しますか? 私にとっては、オブジェクトを作成する代わりに、オブジェクトが保持するデータを外部化するだけのように見えます。つまり、使用されるメモリは同じです。

何か不足していますか?