問題タブ [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 投票する
3 に答える
2245 参照

design-patterns - Builder パターンと Flyweight パターンの違いは何ですか?

Builder パターンと Flyweight パターンの使用方法の違いは何ですか? どちらも多数のオブジェクトを処理します。

0 投票する
4 に答える
1487 参照

java - 冬眠とフライ級

休止状態の永続性マッピングでFlyweightオブジェクトを使用する方法はありますか?私のデータモデルには、同じになる多くのオブジェクトが含まれています。同じオブジェクトごとに個別のインスタンスを作成する代わりに、Flyweightデザインパターンを使用して、常に同じ物理オブジェクトを参照したいと思います。休止状態でこれを達成する方法は?

ところで。すべてのJVMは、同じ文字列が複数回使用されたときに常に同じ物理インスタンスになるように、文字列の使用を最適化しますか?

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

database - データベース駆動型アプリケーションでの Flyweight パターンの使用

Flyweight パターンを使用する必要があるデータベース駆動型アプリケーションの状況の例を教えてください。

アプリケーションのある時点で flyweight パターンを使用する必要があることをどのように知ることができますか?

フライウェイトパターンを学びました。しかし、データベース駆動型のビジネス アプリケーションでそれを使用する適切な場所を理解できません。

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

php - PHPでフライウェイトパターンを実装するには?

これはその定義です:

共有を使用して、多数のきめ細かいオブジェクトを効率的にサポートします。

しかし、それが何を意味するのか正確にはわかりません。

小さなデモで詳しく説明できますか?

0 投票する
7 に答える
11513 参照

java - javaは内部で文字列のflyweightパターンをどのように実装していますか?

String の 2 つのインスタンスがあり、それらが等しい場合、Java では同じメモリを共有します。これは内部でどのように実装されていますか?

編集: 私のアプリケーションは多数の String オブジェクトを使用していますが、その多くは同一です。カスタムフライウェイト実装の作成を避けるために、Java String 定数プールを利用する最良の方法は何ですか?

0 投票する
5 に答える
7459 参照

java - Java での String flyweight 実装の最良の代替手段

私のアプリケーションは集中的な文字列処理でマルチスレッド化されています。過度のメモリ消費が発生しており、プロファイリングにより、これは文字列データが原因であることが示されました。ある種の flyweight パターンの実装やキャッシュを使用することで、メモリ消費が大幅に改善されると思います (文字列が複製されることが多いことは確かですが、その点に関するハード データはありません)。

Java Constant Pool と String.intern を確認しましたが、PermGen の問題を引き起こす可能性があるようです。

javaでアプリケーション全体のマルチスレッド化された文字列プールを実装するための最良の代替手段は何ですか?

編集: 私の以前の関連する質問も参照してください: How does Java implement flyweight pattern for string under the hood?

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

c++ - Flyweight パターンと C++ テンプレート

私はフライ級のパターンを持っています。抽象クラス Glyph があります。クラス Letter と Glyph から派生した抽象コードがあります。コードから派生した YusciiCode、UniCyrCode、および UniLatCode があります。

私の flyweight ファクトリは次のように実行できます。

次のように実行できます。

最初の例では、GCC リンカーは、Letter(unsigned int) および xxxCode(string) コンストラクターがないことを教えてくれます。実際には何もなく、GCCは正しいですが、これらのコンストラクターを定義するよりもこれを行うためのより良い方法はありますか?

2 番目の ecample で、GCC コンパイラは、行にエラーがあることを通知します

関数 GetFlyweight の。

この flyweight パターンを実装する方法は何ですか?

私はそれを使用する必要があります。これが私の現在の実装です:

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

java - dom4jライブラリはFlyweightパターンをどのように実装しますか?

dom4jライブラリで、Flyweightプレフィックスが付いたクラスの数を確認できます:FlyweightAttribute、FlyweightComment、FlyweightTextなど。FlyweightTextの場合のJavadocの内容は次のとおりです。

FlyweightTextは、単一リンクされた読み取り専用のXMLテキストのFlyweightパターン実装です。このノードは、親の関係をサポートしていませんが、ドキュメントや要素間で共有できます。

ただし、コードインスタンスプールや、これらのインスタンスがドキュメント間で共有されている場所を見つけることができないようです。

この機能はライブラリに実装されていますか?はいの場合、それを実装するコードはどこにありますか?

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

design-patterns - Flyweightデザインパターンの名前の理由は何ですか?

私は英語を母国語としない人ですが、そのデザインパターンをよりよく理解しようとしているので、パターンに名前を付けるためのその単語の由来に興味があります。その名前の動機は何ですか?

私の知る限り、フライウェイトデザインパターンは、共有を使用して多数のきめの細かいオブジェクトをサポートする方法に関係しています。

しかし、その特定の単語(フライ級)について私が見つけた定義は、112ポンド未満の重量のボクシングカテゴリを指します。

では、なぜこのようにパターンが呼び出されるのでしょうか。

これがばかげているように思えたら申し訳ありませんが、私には本当に手がかりがありません。