※デザインパターン※→☆☆============フライ級構造モデルモード(XI)

概要モード

また、英語として知られているフライ級Flyweightパターンは、「Flyweightパターン」と呼ばれ、また、フェザー級モードまたはフライ級モードを翻訳しました。

「小さなクラス」を回避するために、共有クラスを使用すると、同じ内容の多くの費用がありますフライ級のパターンは次のように定義されます。このオーバーヘッドは、最も一般的である記憶喪失の視覚的なインパクトを高めることです。フライ級のパターン、きめ細かい多数のオブジェクトをサポートするための効果的な方法を共有し、それがもたらすオーバーヘッドを削減します。

名前と定義は、すべてのそれを共有する方法を達成するために、その後、このコアコンセプトを反映しますか?異なっているが、唯一のは、まったく同じことを共有する場合には、共通して、特定の物事の間に存在する、その後、Flyweightパターンを言うことができるが現実的ではありませんので、私たちは共通して、共有のものにしようとする必要があり、その個性を維持しながら、 。これを行うには、フライ級モードでは状態と外側ユン本来の状態を区別します。極限状態とは外部のユンは人格で、一般的です。

固有状態は変化しない環境の変化は、共有することができると共に、フライ級の内部に格納され、ユン外側は、環境の変化に伴って変化する様子を、共有されないので、クライアントによって外側ユン状態(理由は、クライアントによって引き起こされる環境の変化)を維持します。各特定の環境では、フライ級外側ユンへのクライアントのステータスは、別のオブジェクトを作成します。

次のロールで構成されるフライパターン

  • 1)抽象フライ級の役割:指定のメソッドが特定のフライ級の役割のために実装されなければならない、ユン状態はこの方法によって渡されるパラメータの形です。Javaでは、抽象クラス、インターフェイスによって充填することができます。
  • 2)具体的なフライ級の役割:抽象的な役割の規定の実施。本来の状態であれば、それは本質的な状態のためのストレージを提供する責任があるということ。
  • 3)フライ級工場の役割:フライ級役割の作成と管理を担当します。この役割を達成するために、共有目的を達成するための鍵です!

 

モード構造

 

モード議論

彼は、オブジェクトを作成すると、最も一般的な操作で、オブジェクト指向システムの設計で実現しました。アプリケーションは、あまりにも多くのオブジェクトを使用している場合、それはメモリのオーバーヘッドの多くの原因となります。問題があるがあります。特に、このような設計プロセスの文書エディタのような軽量(粒度の細かい)オブジェクト、何の文字が存在しないかのように、我々は、オブジェクトを作成し、多数のために、システムは、多数のオブジェクトと無駄になるストレージのオーバーヘッドためかもしれません。

フライパターンの利点は、それが大幅にメモリ内のオブジェクトの数を減らすことができるということであり、このステップはその不利益をもたらす実行する:それはシステムの複雑な論理を行い、ある程度のシステムの外側ユン状態への影響スピード。

要約すると、通常の状況下では、Flyweightパターンを使用することは困難です。大きさと上記、被写体の特定の共通の特定の順序がない限り。コンテンツが変更または共通の変形されたときに、フライ級モードの必要性は完全に対応する変更を横断しません。また、返されたオブジェクトの管理にも問題があり、それ以外の場合は、外部放出を制御する際に、現在のオブジェクトと混乱を生成することができ、スマートポインタを使用することをお勧めします。

使用条件のフライパターン:

  • 1)システムは、それらがシステムの効率を低下させるように、多数のオブジェクトを有します。
  • 2)これらのオブジェクトのステータスは、所望の内側および外側部分を単離することができます。

部門と2つの外部ユン本来の状態と状態間の対応関係も注目の非常に価値があります。内側のみと部門外のその適切な役割を果たしていると、適切な固有状態とするためには、分割のミスならば、減少はなく、最悪の場合の下でシステム内のオブジェクト!メンテナンスと両者の対応関係を見つけることは、特定の(もちろん、これははるかに小さい共有オブジェクトを使用しないと比較して)空間の量と時間を過ごすことであり、フライ級のパターンが空間と引き換えに時間を使用することであると言うことができます。対応するアルゴリズムは、検索を高速化するために使用することができます。

 

パターンの実装

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
シャオティンノートはできるだけ詳細に説明する後いくつかの知識を説明し、私はあなたが私のブログに注力していきたいと考えています。
このセクションでは、ここで最後に指摘しています。

シャオティンは、自分の学習経験を置くために時間を持ってみんなと一緒に書き込みや共有に優れた知識を感じるだろう。
道路の開発をプログラミングすることは非常に多く、一緒に共有して一緒に学び、共通の進行できるようにし、非常に長いです。
あなたがどんな記事の監督の場所を持っている場合は、私を修正してください。私はあなたを願っていますし、私はプログラミングに関連する問題を議論するより、コメントすることができます。
最後に、ご支援をありがとうございました~~~となって

       完全なC ++コードの例(テスト対象コードをVS2017で実行することができる)
コードおよび関連情報ダウンロード
              https://gitee.com/arvinxt/DesignPattern

公開された170元の記事 ウォンの賞賛207 ビュー459万+

おすすめ

転載: blog.csdn.net/xiaoting451292510/article/details/103721643