ビルダーパターンとフライウェイトパターンの違いは、両方とも大量のオブジェクトを扱うためです。ビルダーパターンとフライウェイトパターンの違いは何ですか?
答えて
ビルダーパターンはフライパターンは約オブジェクトのそのようなコレクションを共有していることにより、多くのオブジェクトを作成に使用されます。
これら二つのパターン「コンポジット」との契約、いくつかの要素を持っているかもしれないが、彼らはまったく一緒に使用する必要はありません。つまりオブジェクトの両方。フライ級のための原型のユースケースは、数十文字のプールは、テキストエディタアプリケーションで何度も使用されているオブジェクトされる(これは"GoF" bookで与えられる例である)
ストレートウィキペディアから。
フライ級は、ソフトウェアの設計 パターンです。フライは は他の同様の目的で、可能な 限り多くのデータを共有することにより、メモリ使用量を最小限に抑えることが目的です。それは、単純な 繰り返し表現はメモリの 容認できない量を使用する際に大量に オブジェクトを使用する方法です。
Builderパターンは、ソフトウェア デザインパターンです。これらのステップの異なる 実装が オブジェクトの異なる表現を構成することができるように、意図は、 オブジェクトの構築の抽象的なステップです。
一つは建物オブジェクトとメモリ使用量と、他の助けを借りてのに役立ちます。異なるフライウェイトオブジェクトをビルドするためにビルダーを使用する可能性があります。
場合、「多くのオブジェクトフライパターンが適切です無関係のデータを持っている必要はありません」 Javaでは、Stringオブジェクトはフライウェイトとして管理されます。 Javaはすべての固定文字列リテラルをリテラルプールに置きます。冗長リテラルの場合、Javaはプール内に1つのコピーしか保持しません。
フライ作業を行うための鍵は、ファクトリメソッドまたはビルダーデザインパターンを使用して、オブジェクトのインスタンス化を制御することです。ファクトリメソッドの仕事は、単にオブジェクトを作成することです。与えられた入力条件は、適切な型のオブジェクトを返します。
抽象工場が、それはあまりにも複雑なオブジェクトを構築することができるという点でビルダーに似ています。主な違いは、ビルダーパターンが複雑なオブジェクトを段階的に構築することに焦点を当てていることです。抽象的な要素の重点は、製品オブジェクトのファミリ(単純または複雑)にあります。
- 1. ビルダーパターン:ディレクターのポイントは何ですか?
- 2. $と$$の違いは何ですか?
- 3. `##`と `hashCode`の違いは何ですか?
- 4. typedefとの違いは何ですか?
- 5. NodeJS:「./ ..」と「..」の違いは何ですか?
- 6. {}())と{})の違いは何ですか?
- 7. `&`と `ref`の違いは何ですか?
- 8. `==`と `is`の違いは何ですか?
- 9. difftimeと ' - 'の違いは何ですか?
- 10. #{} $ {}と%{}の違いは何ですか?
- 11. ⊕と+の違いは何ですか?
- 12. アペンダーと〜の違いは何ですか?
- 13. "./"と "../"の違いは何ですか?
- 14. "$^N"と "$ +"の違いは何ですか?
- 15. %Qと%{}の違いは何ですか?
- 16. バックスティックと$()の違いは何ですか?
- 17. A`と ``の違いは何ですか[:] `
- 18. 修正されたビルダーパターンは何ですか?
- 19. パッケージのインポートobjと何かの違いをインポートパッケージとPythonの何かの違いは何ですか?
- 20. METADATAとMETADATA.jl:違いは何ですか?
- 21. twistdとnohup&:違いは何ですか?
- 22. libspeとlibspe2?違いは何ですか?
- 23. Backbone.jsとPusherapp - 違いは何ですか?
- 24. wp_link_pagesとthe_posts_pagination→違いは何ですか?
- 25. $ dirtyと$ invalid:違いは何ですか?
- 26. XPathの//と?/の違いは何ですか?の使用は何
- 27. フレームとオブジェクトの違いは何ですか?フレームとオブジェクトの違いは何ですか?
- 28. リストと何か([_])と何か(_)の違い
- 29. 違いは何ですか?
- 30. 違いは何ですか?